定义: PHP类中以两个下画线“__”开头的方法被称为魔术方法。
分类: 例如:构造方法:
__construct;析构方法:
__destruct;动态重载:
__set()、
__get()、
__call()、
__callStatic();
对象的克隆:
__clone()
应用场景:
1、当程序试图修改一个不存在或不可见的类属性时,PHP引擎将会调用__set()方法,当然前提是该方法在类中被定义。
__set()的定义格式如下: function __set($name,$value){ //实现细节 } 其中,$name是动态创建的变量名,$value是该变量的值。
2、当程序试图读取一个不存在或不可见的类属性时,PHP引擎将会调用__get()方法,当然前提是该方法在类中被定义。
__get()的定义格式如下: function __get($name){ //实现细节 } 其中,$name是动态创建的变量名。
3、当程序试图调用一个不存在或不可见的类方法时,PHP引擎将会调用__call()方法,当然前提是该方法在类中被定义。
__call()方法的定义格式如下: function __call($name,$args){ //实现细节 } 其中,$name是动态创建的方法名,$args是该方法的参数,以数组的形式存在。
4、从PHP5.3.0开始,可以使用__callStatic()动态创建静态方法。
__callStatic()的定义格式如下: function __callStatic($name,$args){ //实现细节 } 其中,$name是动态创建的方法名,$args是该方法的参数,以数组的形式存在。
5、__clone()方法一旦被定义,类在被复制时就会自动调用它,这样我们就可以在__clone()方法中给引用属性重新开辟内存
。__clone()定义格式如下: function __clone(){ //实现细节 }
转载请注明:苏demo的别样人生 » PHP类中的魔术方法