使用php闭包或匿名函数来创建函数,而不指定其名称。
有没有可能调用它们而不像我们在JavaScript中那样给标识符赋值?例如:
(function(){
echo('anonymous function');
})();
定义匿名函数时use
构造的正确用法是什么?匿名函数在具有私有属性可访问性的公共方法中的状态是什么?
$anon_func =
function($my_param) use($this->object_property){ //use of $this is erroneous here
echo('anonymous function');
};
发布于 2016-01-28 01:51:43
PHP7增加了这样做的能力。
这段代码:
(function() { echo "This works as expected in PHP 7.\n"; })();
在PHP7中可以正常工作。(它仍然不能在任何PHP5.x中工作。发布)
发布于 2011-11-17 21:02:59
call_user_func(function() use(closure-vars){ ... });
发布于 2010-08-31 10:25:41
看起来不像,因为它们仍然必须用function() {}
表示法声明,并且在我的5.3.2安装中,尝试您的示例表示法返回一个unexpected '('
语法错误。关于闭包的doc page也没有提到这一点。
也许一旦他们修补了解析器以允许somefunction()[2]
数组取消引用,这将成为可能。
https://stackoverflow.com/questions/3605595
复制相似问题