在程式開發中,如果在使用物件呼叫物件內部方法時候,呼叫的這個方法不存在那麼程式就會出錯,然後程式退出不能繼續執行。那麼可不可以在程式呼叫物件內部 不存在的方法時,提示我們呼叫的方法及使用的參數不存在,但程式還可以繼續執行,這個時候我們就要使用在呼叫不存在的方法時自動呼叫的方 法“__call()”。
//這是一個測試的類,裡面沒有屬性和方法
class Test
{
}
//產生一個Test類的物件
$test = new Test();
//產生一個Test類的物件
$test = new Test();
//
//呼叫物件裡不存在的方法
$test->demo("one", "two", "three");
//程式不會執行到這裡echo "this is a test
";
上例出現以下錯誤,程式通常無法繼續執行;
Fatal
error: Call to undefined method Test::demo()
//這是一個測試的類,裡面沒有屬性和方法class Test{
////////////個參數為方法名,第二個參數是陣列參數
function __call($function_name, $args) {
print "你所呼叫的函數:$function_name(參數:";
print "你所呼叫的函數:$function_name(參數:";
args);
echo ")不存在!
";
}
}
//產生一個Test類別的物件
$test=new Test();
//呼叫物件裡不存在//呼叫物件裡不存在的方法
$test->demo("one", "two", "three");//程式不會退出可以執行到這裡
";?>
你所呼叫的函數: demo ) )不存在!
this is a test
炒花生米"大哥,謝謝大哥的分享。
以上就介紹了php物件導向OOP—__call處理呼叫錯誤,包含了面向的內容,希望對PHP教學有興趣的朋友有幫助。