【发布时间】:2011-12-18 15:49:16
【问题描述】:
大量使用 JS 我开始喜欢闭包,所以我很高兴得知 PHP 中也有闭包。但是我就是无法让这些东西工作,这段代码有什么问题?
class Foo {
public $Bar;
public function Foo() {
$this->Bar = function() { echo "Hello World"; };
}
};
$F = new Foo();
$F->Bar();
我不断收到PHP Fatal error: Call to undefined method Foo::Bar() 错误。
【问题讨论】:
-
(a) 你拥有的是一个匿名函数,而不是一个闭包。 (b) 您使用的是哪个 PHP 版本?这是在 PHP 5.3 中引入的。
-
我认为它必须 >=5.3,否则会出现解析错误
-
@jlb:对,刚刚注意到..
-
哎呀,这就是我的意思,然后菲利克斯;)我在版本 5.3.6
-
仅供参考:一个 php 类可以具有同名的属性和函数,因此尝试通过 $this->propname() 将属性作为函数访问不符合规则。