2016-12-16 91 views
-1

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

//anonymous function 

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

$hello(); 

,而不是使用常规的功能这样

//regular function 

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

hello(); 
+0

我很少使用它们,我通常会忘记它们是什么 – 2016-12-16 00:59:56

+0

这与询问使用OOP有什么好处,或者在if/else之上使用switch()相似。从技术上讲,绝对没有。这只是让您的代码组织化并且直观并使工作更快完成的一种方式。 – Havenard

回答

0

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

2

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

以下是伪代码,因为匿名函数是语言不可知的概念。假设你有一个功能,如:

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

然后,您可以使用它像:

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

也就会给人以“你好打印功能”的名称,因为它永远不会是非常小的点在其他地方使用。它因此直接给予do-after-5-seconds

这是一个很小的例子,但是通常情况下,您将拥有永远不会再使用的函数,所以通过命名它们来污染命名空间是毫无意义的。

相关问题