PHP重载overloading技术

 时间:2025-01-06 06:51:55

重载技术概念:常规大多数面向对象语言中的重载概念:是指,在一个类中,定义多个同名不同参的方法的现象!类似这样:class A{function f1(){ ... }function f1($p1) { .... }function f1($p1, $p2) { .... }}//则可以如下去使用:$a1 = new A();$a1.f1(); //这里,“.”就相当于php中的“->”符号。$a1.f1(11);$a1.f1(12,34);PHP语言中的重载概念:php中,一个类中,不可以定义同名的方法——不管参数如何。则:php中的重载概念是:是指:使用一个对象或类的未定义过的属性或方法时的内部处理机制。可见:php中的重载概念,跟大多数面向对象语言中的常规重载概念——完全没有关系。比如:class A{public $p1 = 1;}$a1 = new A();$a1->p1 = 11; //使用一个定义过的属性!$a1->p2 = 22; //使用一个未定义的属性!

工具/原料

PHP重载overloading技术

属性重载:

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技术
  • php抽象类-抽象方法和重载overloading技术
  • php项目如何部署
  • over什么意思
  • php 环境变量配置教程
  • 如何练习crossover
  • 热门搜索
    中秋节手抄报简单又好看 有关科学的手抄报 校园手抄报内容 有关弟子规的手抄报 勤俭廉政手抄报内容 弘扬法治精神手抄报 寓言故事手抄报 做美德少年手抄报 四年级科普手抄报 鼠年手抄报