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

public function __call($name, $args)这里的$args是什么?

public function __call($name, $args)这里的$args是什么?

正在回答

3 回答

<?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

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

name为方法名,args形式是数组这里是参数数组。调用不存在的方法speedDown过程中,自动调用__call()方法,并且以数组的形式传递被调用的不存在的方法的多个参数。

2 回复 有任何疑惑可以回复我~
#1

慕粉4220271 提问者

谢谢,大概了解
2016-10-31 回复 有任何疑惑可以回复我~

传递进来的参数吧。

1 回复 有任何疑惑可以回复我~
#1

慕粉4220271 提问者

前面没有这个参数啊
2016-10-30 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

public function __call($name, $args)这里的$args是什么?

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