__clone()
1.当使用clone的时候触发
2.需要定义在对应的类内
3.必须是public的权限
__get($var)
当访问不存在的参数的时候调用,必须是public
__set($key,$var)
当设置不存在的参数的时候调用,必须是public
__call()
调用不存在的方法时会触发,这个不存在的定义有:1.类内根本就没有定义 2.类内有定义对应的方法,但是权限不够.这些都会触发
__toString()
echo一个对象的时候调用.
__sleep()
serialize一个对象的时候调用.
作用:使用__sleep的目的是提交等待中的数据或进行类似的清除任务。此外,如果有非常大的对象而并不需要完全储存下来时此函数也很有用。----PHP: 魔术函数 __sleep 和 __wakeup - Manual
注意:(总之记住:serialize是为了序列化一个对象保存,但是如果你__sleep返回的是和对象没关的,那这个方法就没有作用了,同时序列化的是对象,不是类(我的理解就是它是没有实际意义的).所以你对对象的操作会在序列化的时候保存下来)
1.一定要返回一个数组,不然会报错 "serialize(): __sleep should return an array only containing the names of instance-variables to serialize"
2. 一定要返回对象的属性,否则serialize(): __sleep should return an array only containing the names of instance-variables to serialize.
3.一定要返回的数组中的val一定要是属性,不然报错Notice: serialize(): "1" returned as member variable from __sleep() but does not exist in
目前我用的不多,之后如果有用到具体的什么地方,我再补充.想深入了解的可以查看PHP: 魔术方法 - Manual
__wakeup()
调用unserialize()的时候触发