public function __call($name, $args)这里的$args是什么?
public function __call($name, $args)这里的$args是什么?
public function __call($name, $args)这里的$args是什么?
2016-10-30
<?php
class Car {
public $speed = 10;
//在这里使用重载实现speedDown方法
public function __call($name, $args) {
$num=count($args);
if($num==2){
if ($name == 'speedDown') {
$this->speed -= 10;
}
}
}
}
$car = new Car();
$car->speedDown('speedDown','223e'); //调用不存在的speedDown方法
echo $car->speed;
请看改过的这段代码 $args其实就是传递的参数个数。这里传递$car->speedDown('speedDown','223e');两个参数($car->speedUp(); 这样写也行 但是只能传递一个参数)所以在__call函数里判断
$num=count($args);
if($num==2){
得到正确的结果 如果只传递一个参数 那么$arg的值就是1
举报