PHP 5.4.5,在这里。我正在尝试调用一个对象,该对象存储为其他对象的成员。像这样(非常粗略)
class A {
function __invoke () { ... }
}
class B {
private a = new A();
...
$this->a(); <-- runtime error here
}
当然,这会产生运行时错误,因为没有名为 a 的方法。但是如果我这样写电话:
($this->a)();
然后我得到一个语法错误。
当然,我可以写
$this->a->__invoke();
但这似乎是难以忍受的丑陋,而是破坏了函子的意义。我只是想知道是否有更好的(或官方的)方法。