魔术方法是PHP面向对象中特有的特性。它们在特定的情况下被触发,都是以双下划线开头,本文详细介绍一下这些魔术方法。
1.__construct(),构造函数,构建对象时被调用。
2.__destruct(),析构函数,明确销毁对象或脚本结束时被调用。
3.__get(),读取可不访问属性的值时,会被调用。
4.__set(),给不可访问属性赋值时,会被调用。
5.__isset(),对不可访问属性调用isset()或empty()时,会被调用。
6.__unset(),对不可访问属性调用unset()时,会被调用。
7.__call(),调用不可访问或不存在的方法时,会被调用。
8.__callStatic(),调用不可访问或不存在的静态方法时,会被调用。
9.__sleep(),当使用serialize时被调用,当你需要报告称大对象的所有数据时很有用。
10.__weekup(),当使用unserialize时被调用,可用于做些对象的初始化操作。
11.__toString(),当一个类被转换成字符串时被调用。
12.__invoke(),当尝试以调用函数的方式调用一个对象时,该方法会被调用。
13.__set_state(),当调用var_export()导出类时,该静态方法会被调用,用__set_state的返回值做为var_export的返回值。
14.__clone(),克隆对象时,调用此函数。
15.__debuginfo(),当调用var_dump()打印对象时会被调用。
网友评论