PHP 重載方法 __call()
阿新 • • 發佈:2017-10-09
多個 cti 第一個 接收 cal 不存在 var on() [1]
__call() 方法用於監視錯誤的方法調用。
__call()(Method overloading)
為了避免當調用的方法不存在時產生錯誤,可以使用 __call() 方法來避免。該方法在調用的方法不存在時會自動調用,程序仍會繼續執行下去。
語法:
function __call(string $function_name, array $arguments) { ...... }
該方法有兩個參數,第一個參數 $function_name 會自動接收不存在的方法名,第二個 $args 則以數組的方式接收不存在方法的多個參數。
在類裏面加入:
function __call($function_name, $args) { echo "你所調用的函數:$function_name(參數:<br />"; var_dump($args); echo ")不存在!"; }
當調用一個不存在的方法時(如 test() 方法):
$p1=new Person(); $p1->test(2,"test");
輸出的結果如下:
你所調用的函數:test(參數: array(2) { [0]=>int(2) [1]=>string(4) "test" } )不存在!
PHP 重載方法 __call()