背景:在調用對象中不存在或不可訪問(私有受保護)的方法時,程序拋出致命的錯誤終止程序的進行。php
爲了處理這種錯誤的同時讓程序繼續執行,咱們能夠在類中添加一個魔術方法__call,來調用對象中不存在的方法時自動調用該方法,而且使程序能夠繼續向下執行。函數
<?php
class Person{
function say(){
echo "Hello, wblog!<br>"對象
}
function __call($funName, $args) { //聲明此方法用來處理調用對象中不存在的方法 blog
echo "你所調用的函數:".$funName."不存在!<br>\n"; io
}function
}class
$Person=new Person();
$Person->run("teacher"); //調用對象中不存在的方法,則自動調用了對象中的__call()方法
$Person->say();程序
?>方法
運行結果: im
你所調用的函數run不存在!
Hello, wblog!
總結:
在類中添加一個魔術方法__call,在調用對象中不存在的方法時就會自動調用該方法,而且程序能夠繼續向下執行。