慕的地4125150
2017-04-20 17:08
__call($name,$args)这两个参数分别代表什么?
是的,当然这个魔术方法是在调用本类没有的方法才会运行;
class Car3 {
public $speed = 100;
//$name调用本类没有的方法,$args是该方法带的参数转换的数组,function __call(string $function_name, array $arguments)
public function __call($name, $args) {
if ($name == 'speedUp') {
echo $name;
print_r($args); //用这个就可以看到效果了
$this->speed += 10;
}
}
}
$car = new Car3();
$car->speedUp(2,3); //调用不存在的方法会使用重载
echo $car->speed;
$name :就是你调用的函数名
public function __call($name,$args){
echo $name; // 数出来的就是 speedDown
echo '<br/>';
//echo $args;
if($name=='speedDown'){
$this->speed -= 10;
}
}
$args : 别人在调用call函数传递进来的参数数组。
PHP进阶篇
181835 学习 · 2577 问题
相似问题