在php中使用匿名函数有什么好处?

时间:2016-12-16 00:45:32

标签: php function anonymous-function

使用像这样的匿名函数有什么好处

//anonymous function

$hello = function(){
 echo "hello world";
};

$hello();

而不是使用像这样的常规函数​​

//regular function

function hello()
{
  echo "hello world";
}

hello();

2 个答案:

答案 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)

什么是功能?可以调用的功能单元和代码重用单元。有时您只需要第一部分:调用和执行操作的能力,但您根本不想重复使用它,甚至使其对代码的其他部分可见。这就是匿名函数的本质所在。