我正在使用__call()
而不是类中的方法。有没有办法影响这个类中method_exists()的结果?
答案 0 :(得分:0)
不,你不能。
__ call只是一个类的函数调用的'占位符'。
考虑一下:
Class MyClass
{
private function Bar()
{
return 'Bar';
}
public function __call($name, $arguments)
{
return $this->Bar();
}
}
$myClass = new MyClass();
echo $myClass->Foo( 'Foo' );
此代码将输出'Bar' 方法'Foo'不存在,并通过调用$ MyClass-> Foo('Foo')__call开始。
显然,method_exists无法知道__call将处理什么。