16

私はphpドキュメントでこの慣行を見てきました:

$foo = function() {
    echo 'foo';
}

$foo();

なぜあなたはただの代わりにそれをするのですか:

function foo()
{
    echo 'foo';
}

foo();
4

3 に答える 3

16

それらはいくつかの点で役立ちます。個人的には実際の機能よりも制御しやすいので使っています。

しかしまた、無名関数はこれを行うことができます:

$someVar = "Hello, world!";
$show = function() use ($someVar) {
    echo $someVar;
}
$show();

無名関数は、スコープ外から変数を「インポート」できます。最良の部分は、(JavaScript とは異なり) ループで安全に使用できることです。関数で使用する変数のコピーを使用するためです。use (&$someVar)

于 2013-03-03T16:58:46.237 に答える
4

などの関数にコールバックを渡すためにもよく使用されarray_mapます。

于 2013-03-03T17:10:58.967 に答える
0

これは、いくつかの特定のケースで非常に役立ちます。例えば

Server::create('/')
    ->addGetRoute('test', function(){
        return 'Yay!';
})

上記のコード スニペットは、REST ベースのアプリケーションでの単純なルーティングの例です。

于 2015-10-26T01:12:05.567 に答える