0

私は最近、PHP で無名関数を使いたいと思っていました。残念ながら、私のホストはまだ5.2. 私はこれがうまくいくと自動的に思った:

uasort($array, function($a, $b) {
    return $a > $b;
});

これが彼らの働き方ですか?コールバックではなく引数として渡されただけですか? ドキュメントでは具体的にはそうではありませんが、私は JavaScript の無名関数について実用的な知識を持っているので、そうなると思います。

4

1 に答える 1

1

はい。通常の PHP コールバックの代わりに使用できます。

これを試してください(PHP 5.3で):

function wait($callback)
{
    sleep(10);
    call_user_func($callback);
}

wait(function(){
    echo "Hello!";
});

どのようcall_user_func()に機能するかは、次のいずれかを受け入れます。

'functionName'
array('className', 'methodName')
array($objectInstance, 'methodName');

そして今PHP 5.3で

function(){ // .. do something .. 
}

私の推測では、PHP の内部関数call_user_func()はコールバック用に使用されており、無名関数がサポートされているため、他のコールバックと同様に機能します。

于 2010-02-12T03:37:47.110 に答える