PHP 将所有以 __(两个下划线)开头的类方法保留为魔术方法。
1.__construct()
__construct是构造函数,会在每次创建新对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作。
2.__destruct()
__destruct是析构函数,它与构造函数相对应,析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行
3.__call(
args)
__call是重载方法,在对象中调用一个不可访问方法时会调用该方法,该方法有两个参数:
1.调用的方法名
2.调用的方法传递的参数
4.__callStatic(
args)
__callStatic是重载方法,在对象中静态调用一个不可访问方法时会调用该方法,该方法有两个参数:
1.调用的方法名
2.调用的方法传递的参数
5.__get($name)
__get获取一个类的成员属性时调用,该方法有一个参数:
1.$name调用的属性名称
6.__set(
value)
__set设置一个类的成员属性时调用,该方法有两个参数:
1.属性名称
2.属性值
7.__isset($name)
__isset当对不可访问属性调用 isset()或empty()时,__isset会被调用,,该方法有一个参数:
1.$name调用的属性名称
8.__unset($name)
__unset当对不可访问属性调用unset()时,__unset 会被调用
9.__sleep()
__sleep在当执行serialize()函数时会被调用,常用于提交未提交的数据,或类似的清理操作。同时,如果有一些很大的对象,但不需要全部保存,这个功能就很好用,如果该方法未返回任何内容,则 NULL 被序列化,并产生一个 E_NOTICE 级别的错误
10.__wakeup()
__wakeup在当执行unserialize()函数时会被调用,经常用在反序列化操作中,例如重新建立数据库连接,或执行其它初始化操作
11.__toString()
__tostring方法用于一个类被当成字符串时应怎样回应
12.__invoke()
__invoke当尝试以调用函数的方式调用一个对象时会被触发
13.__set_state($array)
__set_state方法的唯一参数是一个数组,其中包含按 array('property' => value, ...) 格式排列的类属性,该方法会在调用var_export()导出类时被触发
14.__clone()
__clone当对象复制完成时调用
15.__debuginfo()
__debuginfo该方法在调用var_dump打印的时候触发
16.__autoload()
__autoload尝试加载未定义的类的时候触发,这个函数在php Manual中并未被定义
网友评论