我正在尝试学习 PHP,现在我被困在“静态匿名函数”中。
我在教程中找到了这个(http://www.slideshare.net/melechi/php-53-part-2-lambda-functions-closures-presentation)
“面向对象
- Lambda 函数是闭包,因为它们会自动绑定到创建它们的类的范围。
- '
$this
' 并不总是需要在范围内。- 删除 '
$this
' 可以节省内存。- 您可以通过将 Lambda 函数声明为静态来阻止此行为。”
这段代码有什么问题?
我收到此错误:
解析错误:解析错误,在第 11 行的 C:\wamp\www\z-final\a.php 中期待 `T_PAAMAYIM_NEKUDOTAYIM'
为什么此代码行不起作用“return static function(){var_dump($this);};” ?
class foo
{
public function getLambda()
{
return function(){var_dump($this);};
}
public function getStaticLambda()
{
return static function(){var_dump($this);};
}
}
$foo = new foo();
$lambda = $foo->getLambda();
$staticLambda = $foo->getStaticLambda();
$lambda();
$staticLambda();