首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在一条语句中创建和调用匿名函数

在一条语句中创建和调用匿名函数
EN

Stack Overflow用户
提问于 2010-08-31 10:15:47
回答 4查看 11.5K关注 0票数 19

使用php闭包或匿名函数来创建函数,而不指定其名称。

有没有可能调用它们而不像我们在JavaScript中那样给标识符赋值?例如:

代码语言:javascript
复制
(function(){
    echo('anonymous function');
})();

定义匿名函数时use构造的正确用法是什么?匿名函数在具有私有属性可访问性的公共方法中的状态是什么?

代码语言:javascript
复制
$anon_func = 
function($my_param) use($this->object_property){ //use of $this is erroneous here
    echo('anonymous function');
};
EN

回答 4

Stack Overflow用户

发布于 2016-01-28 01:51:43

PHP7增加了这样做的能力。

这段代码:

代码语言:javascript
复制
(function() { echo "This works as expected in PHP 7.\n"; })();

在PHP7中可以正常工作。(它仍然不能在任何PHP5.x中工作。发布)

票数 25
EN

Stack Overflow用户

发布于 2011-11-17 21:02:59

代码语言:javascript
复制
call_user_func(function() use(closure-vars){ ... });
票数 20
EN

Stack Overflow用户

发布于 2010-08-31 10:25:41

看起来不像,因为它们仍然必须用function() {}表示法声明,并且在我的5.3.2安装中,尝试您的示例表示法返回一个unexpected '('语法错误。关于闭包的doc page也没有提到这一点。

也许一旦他们修补了解析器以允许somefunction()[2]数组取消引用,这将成为可能。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3605595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档