【发布时间】:2013-10-17 15:50:25
【问题描述】:
$ php --version
PHP 5.5.4 (cli) (built: Sep 19 2013 17:10:06)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
以下代码(类似于https://bugs.php.net/bug.php?id=49543 的示例):
class Foo
{
public function bar()
{
return function() use ($this)
{
echo "in closure\n";
};
}
}
失败:
PHP Fatal error: Cannot use $this as lexical variable
然而,根据 PHP 文档和 Rasmus Lerdorf 对该错误报告的评论,在 PHP 5.4 中添加了在匿名函数中使用 $this。我做错了什么?
【问题讨论】:
-
检查以确保您使用的是来自 Web 服务器的相同版本的 PHP。它通常与你在 Bash 中的第一个路径不同。使用
phpinfo()。 -
根据3v4l.org/G28oE 中的快速测试,即使在 5.5.5 中也是如此……也许 Rasmus 在这个问题上是错的……?编辑:或者在他说这个的时候可能打算在 5.4 中(懒得查找知道 5.4 到那时是否已经出来了),但他们再次删除了它,因为它导致了额外的问题他们实现它的方式。
-
@Brad 值得一提,但我用 cli 对此进行了测试。
标签: php