PHP和闭包

Pau*_*ulK 2 php closures

与JS一起工作我已经开始喜欢闭包,所以我很高兴知道PHP中也有闭包.但是我无法让这些东西工作,这段代码有什么问题?

class Foo {
    public $Bar;
    public function Foo() {
        $this->Bar = function() { echo "Hello World"; };
    }
};

$F = new Foo();
$F->Bar();
Run Code Online (Sandbox Code Playgroud)

我一直在收到PHP Fatal error: Call to undefined method Foo::Bar()错误.

mid*_*dus 5

这已经在SO上进行了很多讨论(参见例如这个答案).这应该做的伎俩:

$b = $f->Bar;
$b();
Run Code Online (Sandbox Code Playgroud)

是的,这是愚蠢的.您可以使用call_user_func()一行(请参阅jlb对此问题的回答),但丑陋仍然存在.