码迷,mamicode.com
首页 > Web开发 > 详细

PHP重载

时间:2015-07-24 12:55:49      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:php

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重载

标签:php

原文地址:http://blog.csdn.net/qq_20480611/article/details/47038139

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!