【问题标题】:What is the benefit of using anonymous functions in php ? [duplicate]在 php 中使用匿名函数有什么好处? [复制]
【发布时间】:2016-12-16 00:45:32
【问题描述】:

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

//anonymous function

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

$hello();

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

//regular function

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

hello();

【问题讨论】:

  • 我很少使用它们,我通常会忘记它们是什么
  • 这类似于询问使用 OOP 有什么好处,或者使用 switch() 而不是 if / else。从技术上讲,绝对没有。这只是一种让您的代码井井有条、直观并更快完成工作的方法。

标签: php function anonymous-function


【解决方案1】:

在您的第一个示例中,好处可以忽略不计。匿名函数的真正好处是当你(正如他们的名字所暗示的那样)永远不要给他们一个名字,而是将他们直接传递给另一个函数。

以下是伪代码,因为匿名函数是一个与语言无关的概念。假设您有这样的功能:

function do-after-5-seconds(f) {
    sleep(5000);
    f();
}

然后你可以像这样使用它:

do-after-5-seconds(function() {
    print("Hello!");
});

给“hello 打印功能”起一个名字没有什么意义,因为它永远不会在其他任何地方使用。因此,它直接提供给do-after-5-seconds

这是一个小例子,但通常你会拥有永远不会再次使用的函数,因此通过命名它们来污染命名空间是没有意义的。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-22
      • 2019-04-10
      • 1970-01-01
      • 2014-03-14
      • 2014-09-11
      • 1970-01-01
      • 2021-06-02
      • 2011-01-20
      相关资源
      最近更新 更多