2016-12-16 4 views
-1

このPHPで匿名関数を使用する利点は何ですか?

//anonymous function 

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

$hello(); 

代わりの関数であり、これは何

//regular function 

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

hello(); 
+0

私はそれほど普段は忘れています –

+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に与えられます。

これはちょっとした例ですが、しばしばあなたは再び使用することのない関数を持つことになるので、名前空間を汚染することには何の意味もありません。

関連する問題