假设我们有一个班级
class foo{
}
它没有方法 但是在代码中的某个地方,一些天才开发人员称这个类并使用它,如下所示:
$x = new foo();
$x->run();
我们的类中没有“run”方法,但无论如何,这个foo类可以知道某些代码叫做“run”吗?
答案 0 :(得分:7)
您可以为调用不存在的方法时调用的类magic method named __call
提供:
class foo{
function __call($method, $params) {
echo "Non extisent method $method is called";
}
}
答案 1 :(得分:1)
我很确定你要找的是__call()魔法。它被定义为:
在对象上下文中调用不可访问的方法时会触发__ call()。
此时您可以处理呼叫的动态处理。
class Dog
{
function __call($method, $params)
{
echo("Sorry, this dog cant " . $method);
}
}
$bulldog = new Dog();
$bulldog->run();
输出: 对不起,这条狗不能运行
答案 2 :(得分:1)
我可以用set_error_handler来实现