为了账号安全,请及时绑定邮箱和手机立即绑定

魔术方法 __call 为什么需要两个形参?

<?php

class Car {

    public $speed = 10;


    //在这里使用重载实现speedDown方法

    public function __call($name,$agr){

        if($name=='speedDown'){

            $this->speed-=10;

        }

    }

}

$car = new Car();

$car->speedDown(); //调用不存在的speedDown方法

echo $car->speed;

?>

比如      public function __call($name,$agr) 这行代码中参数$name我能理解,不过这个$agr我就不能理解了,如果__call()少加上一个参数就会报错,为什么呢?  而且$agr这个形参也并没有传入东西啊。。

正在回答

2 回答

$name 参数是要调用的方法名称。$arg 参数是一个枚举数组,包含着要传递给方法 $name 的参数。

0 回复 有任何疑惑可以回复我~

我也发现这个问题,我猜想:可能是指这个函数可能会有多个参数传过来,比如:这个speedDown()函数没有参数值,这个$args没什么意义,但是如果speedDown(10,20...)有多个参数$args就代表这些参数。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

魔术方法 __call 为什么需要两个形参?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信