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

我想知道这个 $args 代码是从哪里冒出来的 有什么意思吗?

public function __call($name, $args) {
   if ($name == 'speedDown') {
       $this->speed -= 10;
   }
}

提问者:myzun 2015-05-19 20:48

个回答

  • 陈校军
    2015-05-19 23:08:22
    已采纳

    1,当我们试图调用类中一个不可见或者未定义方法的时候,类中定义好的__call这个魔术方法就会去监听这个动作。 并且会自动将我们试图调用的方法名放入到__call方法的第一个参数中,将方法里面的实际参数放到__call方法的第二个参数中(如果没有传递任何参数,那么第二个参数就是一个空数组)。

    2,__call里面的参数是形式参数,参数名可以自定义。