PHP重载
2016-03-20 22:19
525 查看
重载
PHP中的重载指的是动态的创建属性与方法,是通过魔术方法来实现的。属性的重载通过__set,__get,__isset,__unset来分别实现对不存在属性的赋值、读取、判断属性是否设置、销毁属性。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的重载方法,使用__call实现方法的重载,创建speedDown的方法使速度减少10。<?php
class Car {
public $speed = 10;
//在这里使用重载实现speedDown方法
public function __call($name,$args){
if($name=='speedDown'){
$this->speed -= 10;
}
}
}
$car = new Car();
$car->speedDown(); //调用不存在的speedDown方法
echo $car->speed;
相关文章推荐
- PHP简单计算器
- Ubuntu 环境下运行YII2框架的一些扩展
- uboot tftp code structure
- Zend Studio教程之设置字体大小和颜色
- EditPlus配色方案
- FTP访问类
- getsockname函数与getpeername函数的使用
- ThinkPHP 内置方法介绍
- php iis7.5关键配置
- php环境的搭建
- Ajax and php 3_1
- phpstudy配置虚拟主机
- PHP数组的相关处理函数2
- PHP读取PDF页数的方法
- thinkphp- 许愿墙-1
- php把文件上传到远程服务器上
- 【ThinkPHP5.0RC2吃螃蟹之】关于ThinkPHP5.0的渲染模板输出
- CURD方法盘点:where方法-THINKPHP
- php生成0~1随机小数方法
- ContentProvider内容提供者