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