<?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;
方法重载
public mixed __call ( string $name , array $arguments )
在对象中调用一个不可访问方法时,__call() 会被调用。
$name参数是要调用的方法名称。$arguments参数是一个枚举数组,包含着要传递给方法$name的参数。
<?php
class Car {
public $speed = 10;
//在这里使用重载实现speedDown方法
public function __call($name, $args){
if($name == 'speedDown'){
$this->speed -= 10;
var_dump($name,$args);
}
}
}
$car = new Car();
$car->speedDown('我是参数','我是参数2'); //调用不存在的speedDown方法
echo $car->speed;因为调用了不存在的方法speedDown 所以进行了重载,传入了2个参数都存放在$args里
var_dump($name,$args);可以明显查看变量里面的内容