這里的 $name 和$args 分別代表什么 真心不懂
public?function?__call($name,$args){ ??????if($name=="speedDown")?{? ???????$this->speed?-=?10;??} ????}
這段話(huà) ?誰(shuí)能 從開(kāi)頭 到結(jié)尾 的解釋下 ?別用程序的用詞 初學(xué)折很難理解 ,最好打一個(gè)比喻,謝謝了 ? $name 和 $aers ?不是函數(shù)的參數(shù)嗎 ?參數(shù)也沒(méi)見(jiàn)賦值
2017-04-06
$name 表示的是形式參數(shù),指的是類(lèi)中不存在的方法名,看$name不爽,你可以換成$a,$b或者$c等等都可以。
$arguments表示的是一個(gè)可以 數(shù)的盡的(可枚舉的)數(shù)組的值。當(dāng)然也可以替換成你喜歡的$xxx。
舉例來(lái)說(shuō):
class Haha{
????public function __call($a,$b){
????????echo "你好,你正在調(diào)用一個(gè)不存在方法".$a.",且數(shù)組值為:".implode ("",$b)."<br>";
????}
????public static function __callStatic($name,$arguments){
????echo "你好,你正在靜態(tài)環(huán)境下調(diào)用一個(gè)不存在的方法".$name.",且數(shù)組值為:".implode ("",$arguments).
????"<br />";
????}
}
$obj =new methodTest();//新建一個(gè)實(shí)例
$obj->runTest('PHP001');//訪問(wèn)一個(gè)不存在的方法runTest
$obj::runTest('PHP002');//靜態(tài)下訪問(wèn)一個(gè)不存在的方法runTest
輸出結(jié)果為:
你好,你正在調(diào)用一個(gè)不存在方法runTest,且數(shù)組值為:PHP001
你好,你正在靜態(tài)環(huán)境下調(diào)用一個(gè)不存在的方法runTest,且數(shù)組值為:PHP002
2017-03-10
$name就是這個(gè)不存在的方法的方法名,比如Car這個(gè)類(lèi)調(diào)用speedDown()方法,但是Car類(lèi)中沒(méi)有這個(gè)方法,于是就調(diào)用重載的方法__call()方法,那么第一個(gè)參數(shù)就是‘speedDown’.第二個(gè)參數(shù)更好理解了,它代表這個(gè)不存在的方法的參數(shù),是個(gè)數(shù)組類(lèi)型的參數(shù),調(diào)用speedDown()中沒(méi)有參數(shù),如果有的話(huà)那么就會(huì)存在$args中了。
2017-02-22
這是__call重載方法的連個(gè)形參,目的是用來(lái)接收調(diào)用該函數(shù)時(shí)傳如的參數(shù).?