背景:在调用对象中不存在或不可访问(私有受保护)的方法时,程序抛出致命的错误终止程序的进行。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,在调用对象中不存在的方法时就会自动调用该方法,而且程序能够继续向下执行。