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

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

三瓣核桃

2016-05-05 10:37

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


写回答 关注

2回答

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

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


    西伯利亚狼t... 回复坚持MyDr...

    string(9) "speedDown"array(0) {}0

    2017-04-14 10:58:30

    共 3 条回复 >

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

    类似于函数的形参与实参

    三瓣核桃

    嗯嗯 ,谢谢,就是 比如 后边的这个函数(前边的我注释掉了) function __call($name,$args) 中$name 是实参,$args是形参,是吧?她们的作用域不同。这样理解对吗?

    2016-05-05 11:04:21

    共 1 条回复 >

PHP进阶篇

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

181734 学习 · 2575 问题

查看课程

相似问题