__construct() 实例化对象时被调用, 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用。
__call();
1,在调用对象中不存在的方法时,__call()魔术方法会自动调用
2,处理一些不存在方法的错误调用。
3,这个方法需要两个参数。
function __call($methodName,$args){
}
__toString();
1,用来快速读取对象用字符串表示的最便捷方法。
2,直接输出对象的引用时自动调用。
3,该方法必须返回一个字符串。
__clone();
1,复制(克隆)对象使用clone处理---------->$p1 = clone $object。
2,__clone()是在克隆对象的时候自动调用。
3,只要一个对象一诞生,就要有初始化的动作。
4,和构造方法__construct()相似,它是为克隆出来的副本对象初始化。
5,在__clone()方法中$this关键字代表的是副本对象。($that代表原本对象。)
__autoload();
1,其他的魔术方法都是在类中添加起作用的,这是唯一一个不在类中添加的方法。
2,在类外部添加的方法,可以自动加载类!
3,只要在页面中使用到一个类,就会自动将类名传给__autoload(类名参数)类名参数。
对象串行化(序列化):将一个对象转为二进制串。
1,将对象长时间存储在数据库或文件时使用对象串行化。
2,将对象在多个PHP文件中传输时使用对象串行化。
serialize():参数是一个对象,返回这个对象串行化后的二进制串。------------序列化
unserialize():参数是对象的二进制串,返回来的就是原序列化之前的对象。----------------反序列化
__sleep();
1,在对象序列化时自动调用的方法。
2,可以将一个对象部分串行化。(只要这个方法中返回一个数组,数组中有几个成员属性,就序列化几个属性。如果不加这个方法,则所有成员都被序列化!)
__wakeup();
1,在对象反序列化时自动调用的方法。
2,可以将一个对象部分反串行化。(也是对象重新诞生的过程------>__construct(),__wakeup(),__clone())