假设我们有一堂课
class foo{
}
它没有方法,但在代码的某个地方,一些天才开发人员调用了该类并像这样使用它:
$x = new foo();
$x->run();
我们的类中没有“run”方法,但是这个 foo 类是否可以知道某些代码称为“run”方法?
您可以给该类一个名为的魔术方法__call
,该方法在调用不存在的方法时被调用:
class foo{
function __call($method, $params) {
echo "Non extisent method $method is called";
}
}
我很确定您正在寻找的是__call()魔术方法。它被定义为:
__call() 在对象上下文中调用不可访问的方法时触发。
此时您可以处理调用的动态处理。
class Dog
{
function __call($method, $params)
{
echo("Sorry, this dog cant " . $method);
}
}
$bulldog = new Dog();
$bulldog->run();
输出: 对不起,这只狗不能跑
我认为可以通过set_error_handler来实现