zoukankan      html  css  js  c++  java
  • php的魔术方法

    __construct() 构造函数

    __destruct() 析构函数

    __call() 调用不存在的方法时调用

    __callStatic()  静态函数里面调用不存在的方法时调用

    __get() 对未定义的变量赋值时调用

    __set() 读未定义的变量时调用

    __isset() 对未定义的变量执行isset()时调用

    __unset() 对未定义的变量执行unset()时调用

    __toString() 允许以调用字符串的方法调用对象

    __invoke()  允许以调用函数的方法调用对象

    __set_state() 执行var_export返回的内容

    __clone() 对象完全复制

    使用情况:如果对象A中保存着对象B的引用,当你复制对象A时,你想其中使用的对象不再是对象B而是B的一个副本,那么 你必须得到对象A的一个副本。

    __sleep() __wakeup()

    serialize() 函数执行前会检查是否存在一个魔术方法 __sleep().如果存在,__sleep()方法会先被调用, 然后才执行序列化操作。这个功能可以用于清理对象,并返回一个包含对象中所有应被序列化的变量名称的数组。如果该方法不返回任何内容,则NULL被序列 化,并产生 一个E_NOTICE错误。 __sleep()方法常用于提交未提交的数据,或类似的清理操作。同时,如果你有一些很大的对象, 不需要全部保存,这个功能就很好用。

    与之相反,unserialize()会检查是否存在一个__wakeup()方法。如果存在,则会先调用 __wakeup方法,预先准备对象需要的资源。__wakeup()经常用在反序列化操作中,例如重新建立数据库连接,或执行其它初始化操作

  • 相关阅读:
    ThinkPHP函数详解:C方法
    ThinkPHP函数详解:A方法
    php中的中文字符串长度计算以及截取
    JQ $("#form1 :input" ).length 与 $("#form1input").length有什么区别?
    php中的isset和empty的区别与认识
    谈谈ACM带来的一些东西
    HDU 4374--F(x)
    奖学金
    数字排序
    查找数字
  • 原文地址:https://www.cnblogs.com/xingmeng/p/2934870.html
Copyright © 2011-2022 走看看