​__call($name,$args)这两个参数分别代表什么?

来源:2-9 PHP类和对象之重载

慕的地4125150

2017-04-20 17:08

__call($name,$args)这两个参数分别代表什么?

写回答 关注

3回答

  • qq_龚诗雨_0
    2017-04-20 17:19:42
    已采纳

    是的,当然这个魔术方法是在调用本类没有的方法才会运行;

    慕的地412...

    非常感谢!

    2017-04-20 18:32:15

    共 1 条回复 >

  • 楽冷风清
    2017-04-22 08:25:05

    class Car3 {

        public $speed = 100;

    //$name调用本类没有的方法,$args是该方法带的参数转换的数组,function __call(string $function_name, array $arguments)

        public function __call($name, $args) {    

            if ($name == 'speedUp') {

    echo $name;

    print_r($args);    //用这个就可以看到效果了

                $this->speed += 10;

            }

        }

    }

    $car = new Car3();

    $car->speedUp(2,3); //调用不存在的方法会使用重载

    echo $car->speed;


  • 慕的地4125150
    2017-04-20 17:13:40

    $name :就是你调用的函数名

     public function __call($name,$args){

            echo $name; // 数出来的就是 speedDown

             echo '<br/>';

            //echo $args;

            if($name=='speedDown'){

                 $this->speed -= 10;

            }

        }

    $args : 别人在调用call函数传递进来的参数数组。

    慕的地412...

    我理解的对吗

    2017-04-20 17:15:06

    共 1 条回复 >

PHP进阶篇

轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序

181728 学习 · 2575 问题

查看课程

相似问题