PHP 重載方法 __call()
__call() 方法用於監視錯誤的方法呼叫。
__call()(Method overloading)
為了避免當呼叫的方法不存在時產生錯誤,可以使用 __call() 方法來避免。該方法在調用的方法不存在時會自動調用,程式仍會繼續執行。
語法:
function __call(string $function_name, array $arguments)
{
......
}
該方法有兩個參數,第一個參數會自動上一個參數存在的方法名,第二個$args 則以陣列的方式接收不存在方法的多個參數。
在類別內加入:
function __call($function_name, $args)
{
echo "你所呼叫的函數:$function_name(m.
echo ")不存在!";
}
當呼叫不存在的方法(如test() 方法):
$p1=new Person();
,"test");
輸出的結果如下:
你所呼叫的函數:test(參數:
array(2) {
[0]=>int(2)
=> string(4) "test"
}
)不存在!