__set() 是直接设置私用成员属性值时,自动调用的方法
__get() 是直接获取私用成员属性值时,自动调用的方法
__isset() 直接查看对象中私用属性是否存在时自动调用这个方法
__unset() 是直接删除对象中私用属性时,自动调用的方法
__construct() 构造方法, 通常用来对成员属性进行初始化赋值
__destruct() 析构方法, 通常用来完成一些在对象销毁前的清理任务
__call() 在程序调用不存在的方法时,会自动调__call()方法,需要传两个参数:一个是方法名,一个是参数
__toString() 直接输出对象引用进自动调用,用来快速获取对象的字符串表示的最便捷的方法
__clone() 克隆对象(clone)时自动调用,只要一个对象一诞生,就要有初使化的动作, 和构造方法__construct作用相似
在__clone()方法中的$this关键字,代表的是复本 $that代表原本对象
__autoload()注意:其它的魔术方法都是在类中添加起作用,这是一个唯一一个不在类中添加的方法
只要在页面中使用到一个类,只要用到类名就会自动将类名传给这个参数
对象串行化(序列化) 将一个对象转为二进制串(对象是存储在内存)
1、将对象长时间存储在数据库或文件中时
2、将对象在多个PHP文件中传输时
Serialize():参数是一个对象,返回来的就是串行化后的二进制串
Unserialize():参数是对象的二进制串,返回来的就是新生成的对象
__sleep()在序列化时自动调用的方法
作用:可又将一个对象部分串行化
只要这个方法中返回一个数组,数组中有几个成员属性就序列化几个成员属性,如果不加这个方法,刚把有成员都序列化
__wakeup()
是在反序列化的时候自动调用的方法
也是对象重新诞生的一个过程(__construct(),__clone(),__wakeup())