PHP重载overloading技术

2025-10-22 09:42:23

1、如果使用一个对象的未定义的属性,就构成属性重载。

先看本质:

属性的本质是:变量;

变量有几种操作:

赋值:

取值:

isset()判断是否存在:

unset()销毁变量:

则一个对象的属性也同样有该4种操作。

则,属性重载,就是对一个“未定义”的属性,进行如上4种操作之一时的应对机制(处理办法)。

其上,每一个操作,都会自动各自去调用一个预先定义好的“魔术方法”:

2、1:__set($name, $value):

当对一个对象的未定义的属性,进行“赋值”时,此时会自动调用类中预先定义好的魔术方法:__set();

该方法带2个参数:

$name : 表示该正在赋值的未定义的属性名;

$value : 表示该正在赋值的值;

实际上,之所以对一个对象的未定义的属性进行赋值,自然是希望该对象来保存该数据。

举例:

PHP重载overloading技术

3、2: __get($name)方法

当对一个对象的未定义的属性,进行“取值”时,此时会自动调用类中预先定义好的魔术方法:__get();

该方法带1个参数:

$name : 表示该正在取值的未定义的属性名;

代码示例:

PHP重载overloading技术

4、测试结果:

PHP重载overloading技术

5、3:__isset()判断:

当对一个对象的未定义的属性,进行“isset()”判断时,此时会自动调用类中预先定义好的魔术方法:__isset();

该方法带1个参数:

$name : 表示该正在isset()的未定义的属性名;

PHP重载overloading技术

6、测试代码结果:

PHP重载overloading技术

7、4:__unset()销毁:

当对一个对象的未定义的属性,进行“unset()”操作时,此时会自动调用类中预先定义好的魔术方法:__unset();

该方法带1个参数:

$name : 表示该正在unset()的未定义的属性名;

PHP重载overloading技术

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