为什么在 PHP 中将函数存储为变量

php
2022-08-30 23:28:58

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

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

$foo();

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

function foo()
{
    echo 'foo';
}

foo();

答案 1

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

但是,匿名函数也可以这样做:

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

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


答案 2

它也经常用于将回调传递给函数,例如和许多其他函数。array_map


推荐