PHP重载
2015-07-24 11:10
573 查看
PHP中的重载指的是动态的创建属性与方法,是通过魔术方法来实现的。属性的重载通过__set,__get,__isset,__unset来分别实现对不存在属性的赋值、读取、判断属性是否设置、销毁属性。
方法的重载通过__call来实现,当调用不存在的方法的时候,将会转为参数调用__call方法,当调用不存在的静态方法时会使用__callStatic重载。
class Car { private $ary = array(); public function __set($key, $val) { $this->ary[$key] = $val; } public function __get($key) { if (isset($this->ary[$key])) { return $this->ary[$key]; } return null; } public function __isset($key) { if (isset($this->ary[$key])) { return true; } return false; } public function __unset($key) { unset($this->ary[$key]); } } $car = new Car(); $car->name = '汽车'; //name属性动态创建并赋值 echo $car->name;
方法的重载通过__call来实现,当调用不存在的方法的时候,将会转为参数调用__call方法,当调用不存在的静态方法时会使用__callStatic重载。
class Car { public $speed = 0; public function __call($name, $args) { if ($name == 'speedUp') { $this->speed += 10; } } } $car = new Car(); $car->speedUp(); //调用不存在的方法会使用重载 echo $car->speed;
相关文章推荐
- php -- PDO事务处理
- Zend Studio mac破解使用
- php gd 生成日历图
- php访问控制
- PHP 页面编码声明方法详解(header或meta,解决中文乱码问题)
- 【MySQL学习】MySQL PHP 语法
- CTP多点触摸协议
- ftp 530 没有权限
- Editplus 当前行高亮技巧
- Postfix开启内网SMTP认证
- ContentProvider的使用(2)
- PHP 7.0 升级备注
- 配置内存中OLTP文件组提高性能
- php实现排序算法(一) 冒泡排序 快速排序
- php正则表达式获取内容所有链接
- PHPCMS调用相关
- 基于window下的jenkins php集成环境搭建分享(1)
- ntpdate
- ubuntu9(bt5)下安装TP-LINK TL-WN823N无线网卡驱动(rtl8192cu芯片组)
- php闭包实例