影响method_exists()

时间:2012-09-11 13:20:48

标签: php oop

  

可能重复:
  PHP __call vs method_exists

我正在使用__call()而不是类中的方法。有没有办法影响这个类中method_exists()的结果?

1 个答案:

答案 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将处理什么。