魔術方法 __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這個形參也并沒有傳入東西啊。。
2020-03-03
$name?參數是要調用的方法名稱。$arg 參數是一個枚舉數組,包含著要傳遞給方法?$name?的參數。
2019-07-21
我也發現這個問題,我猜想:可能是指這個函數可能會有多個參數傳過來,比如:這個speedDown()函數沒有參數值,這個$args沒什么意義,但是如果speedDown(10,20...)有多個參數$args就代表這些參數。