问答详情
源自:2-9 PHP类和对象之重载

请问 【public function __call($name,$args)】中$name ,$args 在属性上有什么区别?

<?php
/*class Car {
    public $speed = 10;

    //在这里使用重载实现speedDown方法
    
}
$car = new Car();
$car->speedDown(); //调用不存在的speedDown方法
echo $car->speed;*/

class Car {
    public $speed = 0;
    
    public function __call($name,$args) {
        if ($name == 'speedUp'){
            $this->speed += 10;
        }
    }
    }
$car = new Car();
$car->speedUp();
echo $car->speed;


提问者:三瓣核桃 2016-05-05 10:37

个回答

  • 慕无忌3080741
    2016-05-05 10:43:53
    已采纳

    因为调用了不存在的方法speedDown 所以进行了重载,传入了2个参数都存放在$args里,var_dump($name,$args);可以明显查看变量里面的内容


  • 慕无忌3080741
    2016-05-05 10:41:40

    类似于函数的形参与实参