16

我在 php 文档中看到了这种做法:

$foo = function() {
    echo 'foo';
}

$foo();

你为什么要这样做,而不仅仅是:

function foo()
{
    echo 'foo';
}

foo();
4

3 回答 3

16

它们在几个方面很有用。我个人使用它们是因为它们比实际功能更容易控制。

而且,匿名函数也可以这样做:

$someVar = "Hello, world!";
$show = function() use ($someVar) {
    echo $someVar;
}
$show();

匿名函数可以从外部范围“导入”变量。最好的部分是在循环中使用它是安全的(与 JavaScript 不同),因为它需要一个变量的副本来与函数一起使用,除非你明确告诉它通过引用传递use (&$someVar)

于 2013-03-03T16:58:46.237 回答
4

它还经常用于将回调传递给诸如array_map和许多其他函数

于 2013-03-03T17:10:58.967 回答
0

它在某些特定情况下非常有用。例如

Server::create('/')
    ->addGetRoute('test', function(){
        return 'Yay!';
})

上面的代码片段是基于 REST 的应用程序中的简单路由示例。

于 2015-10-26T01:12:05.567 回答