|
楼主 |
发表于 2018-7-22 01:51:41
|
显示全部楼层
啥是重载呢?
重载---------就是童泰创建属性和方法,通过魔术方法来实现【别问我啥是魔术方法 :参考文献: http://www.php.net/manual/zh/language.oop5.magic.php】
类与对象的重载参考文献:http://www.php.cn/php-weizijiaocheng-392407.html
1.属性的重载- class Car
- {
-
- private $arr= array();
- public function __set($key,$val){
- print '进入了子类 $this -> ary[$key] = $val ;
- }
- public function __get($key){
- if(isset($this->ary[$key])){
- return $this->ary[$key];
- }
- return null; //后面省略两个判断
- }
-
- }
- $car = new Car();
- $car-> name ="汽车"; //name属性动态创建并且 赋值
- echo $car->name ;
- //上述代码有错误 待检测
-
- 总结:属性的重载通过 __set , __get ,__isset ,__unset 来分别实现对不存在属性的赋值,读取,判断属性是否设置,销毁属性
复制代码 方法的重载:
- class Car
- {
-
- public $speed = 0;
- public function __call($name,$args){
- if($name == 'speedUp'){
- $this ->speed +=10;
- }
- }
-
- }
- $car = new Car();
- $car-> speedUp();
- echo $car ->speed;
- // 总结:方法的重载通过 __call 来实现,当调用不存在的方法,将会转为参数调用call 方法, 当调用不存在的静态方法,贼会调用__call static [我怎么感觉我笔记本上少了一个]
-
- ?>
复制代码
|
|