魔術(shù)方法 __call 為什么需要兩個(gè)形參?
<?php
class Car {
? ? public $speed = 10;
? ? //在這里使用重載實(shí)現(xiàn)speedDown方法
? ? public function __call($name,$agr){
? ? ? ? if($name=='speedDown'){
? ? ? ? ? ? $this->speed-=10;
? ? ? ? }
? ? }
}
$car = new Car();
$car->speedDown(); //調(diào)用不存在的speedDown方法
echo $car->speed;
?>
比如? ? ? public function __call($name,$agr)?這行代碼中參數(shù)$name我能理解,不過(guò)這個(gè)$agr我就不能理解了,如果__call()少加上一個(gè)參數(shù)就會(huì)報(bào)錯(cuò),為什么呢?? 而且$agr這個(gè)形參也并沒(méi)有傳入東西啊。。
2020-03-03
$name?參數(shù)是要調(diào)用的方法名稱(chēng)。$arg 參數(shù)是一個(gè)枚舉數(shù)組,包含著要傳遞給方法?$name?的參數(shù)。
2019-07-21
我也發(fā)現(xiàn)這個(gè)問(wèn)題,我猜想:可能是指這個(gè)函數(shù)可能會(huì)有多個(gè)參數(shù)傳過(guò)來(lái),比如:這個(gè)speedDown()函數(shù)沒(méi)有參數(shù)值,這個(gè)$args沒(méi)什么意義,但是如果speedDown(10,20...)有多個(gè)參數(shù)$args就代表這些參數(shù)。