0
class Foo {
    private $_bar;

    public function getBar() {
        return $this->_bar;
    }
}
$b = new Foo(); 
$b->xxx(); //xxx is an udefined method.

如果调用未定义的方法,如何增强以下类以引发通知?

4

4 回答 4

3

您必须定义一个 __call( $methodName , $args ) 方法。

并从那里抛出你自己的异常。

于 2012-09-14T19:03:09.887 回答
3
class Foo {
    private $_bar;

    public function getBar() {
        return $this->_bar;
    }

    public function __call($name, $params)
    {
       throw new Exception("Method $name does not exists!");
    }
}
于 2012-09-14T19:04:28.210 回答
0

当您调用未定义的函数时,会像其他任何时候一样抛出 PHP 警告。您需要使用error_reporting(E_ALL);.

于 2012-09-14T19:01:57.250 回答
0

在 Foo 类中编写 __call

function __call( $functionName, $argumentsArray ) {
      echo "Function $functionName does not exist";
    }

参考

于 2012-09-14T19:04:12.010 回答