使用像这样的匿名函数有什么好处
//anonymous function
$hello = function(){
echo "hello world";
};
$hello();
而不是使用像这样的常规函数
//regular function
function hello()
{
echo "hello world";
}
hello();
答案 0 :(得分:2)
在您的第一个示例中,收益可以忽略不计。匿名函数的真正好处是当你(顾名思义)时,永远不要给它们一个名字,并将它们直接传递给另一个函数。
以下是伪代码,因为匿名函数是一种与语言无关的概念。假设您有以下功能:
function do-after-5-seconds(f) {
sleep(5000);
f();
}
然后您可以像:
一样使用它do-after-5-seconds(function() {
print("Hello!");
});
给予" hello打印功能并没有什么意义。一个名字,因为它永远不会在其他任何地方使用。因此,它直接提供给do-after-5-seconds
。
这是一个小例子,但是你经常会有你再也不会使用的功能,所以通过命名它们来污染命名空间是没有意义的。
答案 1 :(得分:0)
什么是功能?可以调用的功能单元和代码重用单元。有时您只需要第一部分:调用和执行操作的能力,但您根本不想重复使用它,甚至使其对代码的其他部分可见。这就是匿名函数的本质所在。