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;

这里的重载不是c++或者java意义上的重载,而是php的一个默认函数__call($name,$args),当你要调用的函数不存在时,函数名(speedDown)传给形参$name,里面的参数传给形参$args,然而内部具体执行需要自己编写。

你可能感兴趣的:(PHP类和对象之重载)