定义类函数操作符



我如何在PHP中定义一个类Foo,允许做这样的事情:

$foo = new Foo();
$foo->bar;
$foo();

您正在询问可调用对象,或者将对象视为函数。要做到这一点,需要实现__invoke()方法,如下所示:

class Foo {
    public function __invoke()
    {
        echo 'invoke!';
    }
}

阅读更多:http://php.net/manual/en/language.oop5.magic.php#object.invoke

同样,你可以多次调用$foo->bar;,就像你可以写:$a = 5; $a;一样,但它不会有任何效果。它只是一个领域。如果它是一个可调用的,你必须添加括号来调用它。

最新更新