1.定义
是指在某些特定情况下会自动调用的方法
PHP提供了多个魔术方法,都是以__开头的
2.构造方法 __construct
当实例化对象时,会自动调用该方法
可用于在实例化对象时传参,以控制类的属性
class 类名 {
private 属性名 = null;
public function __construct ($形参) {
$this -> 属性名 = $形参;
}
}
$对象 = new 类名(‘实参‘);
echo $对象 -> 属性名;
3.析构方法 __destruct
当使用unset()销毁对象、为对象赋予其他值或页面执行完后会调用该方法
4.自动加载 __autoload
当实例化针对的类未加载到当前文件中时会自动调用该方法
且会将类名传入作为参数
function __autoload ($class) {
require (‘./‘. $class .‘.php‘);
}
$对象 = new 类名();
注意:
类的声明是全局有效的(哪怕在函数的内部)
可使用spl_autoload_regsite(‘方法名‘)将自定义方法
注册为具有“自动加载”功能的方法
4.其它
方法名 调用条件
__clone() 当使用clone()克隆对象时
__get($形参) 当访问非公共/未定义的属性时
__set($形参1,$形参2) 当修改非公共/添加未定义的属性时
__call($形参1,$形参2) 当访问非公共/未定义的方法时
__callStatic($形参1,$形参2) 当访问非公共/未定义的静态方法时
__isset() 当对非公共/未定义的属性使用isset()时
__unset() 当对非公共/未定义的属性使用unset()时
注意:这些魔术方法在编写框架底层应用时,可以起到非常重要的作用
作者:@zhnoah
出处:http://www.cnblogs.com/zhnoah/
本文版权归本人和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连
接,否则保留追究法律责任的权利。