定义类函数运算符

时间:2016-09-05 14:50:45

标签: php

如何在PHP中定义允许执行以下操作的类Foo

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

1 个答案:

答案 0 :(得分:1)

您询问可调用对象或将对象视为函数。为此,您需要实现__invoke()方法,如下所示:

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

了解详情:http://php.net/manual/en/language.oop5.magic.php#object.invoke

此外,您可以根据需要多次拨打$foo->bar;,就像您可以写一样:$a = 5; $a; - 但它不起作用。它只是一个领域。如果它是可调用的,您必须添加括号来调用它。