PHP重载overloading技术
1、如果使用一个对象的未定义的属性,就构成属性重载。
先看本质:
属性的本质是:变量;
变量有几种操作:
赋值:
取值:
isset()判断是否存在:
unset()销毁变量:
则一个对象的属性也同样有该4种操作。
则,属性重载,就是对一个“未定义”的属性,进行如上4种操作之一时的应对机制(处理办法)。
其上,每一个操作,都会自动各自去调用一个预先定义好的“魔术方法”:
2、1:__set($name, $value):
当对一个对象的未定义的属性,进行“赋值”时,此时会自动调用类中预先定义好的魔术方法:__set();
该方法带2个参数:
$name : 表示该正在赋值的未定义的属性名;
$value : 表示该正在赋值的值;
实际上,之所以对一个对象的未定义的属性进行赋值,自然是希望该对象来保存该数据。
举例:

3、2: __get($name)方法
当对一个对象的未定义的属性,进行“取值”时,此时会自动调用类中预先定义好的魔术方法:__get();
该方法带1个参数:
$name : 表示该正在取值的未定义的属性名;
代码示例:

4、测试结果:

5、3:__isset()判断:
当对一个对象的未定义的属性,进行“isset()”判断时,此时会自动调用类中预先定义好的魔术方法:__isset();
该方法带1个参数:
$name : 表示该正在isset()的未定义的属性名;

6、测试代码结果:

7、4:__unset()销毁:
当对一个对象的未定义的属性,进行“unset()”操作时,此时会自动调用类中预先定义好的魔术方法:__unset();
该方法带1个参数:
$name : 表示该正在unset()的未定义的属性名;

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:154
阅读量:141
阅读量:59
阅读量:181
阅读量:124