我正在尝试学习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();
Run Code Online (Sandbox Code Playgroud)