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

Ale*_*eau 13 php

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

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

$foo();
Run Code Online (Sandbox Code Playgroud)

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

function foo()
{
    echo 'foo';
}

foo();
Run Code Online (Sandbox Code Playgroud)

Nie*_*sol 12

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

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

$someVar = "Hello, world!";
$show = function() use ($someVar) {
    echo $someVar;
}
$show();
Run Code Online (Sandbox Code Playgroud)

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

  • 在循环中使用它的一个例子可能很有用. (7认同)