私は最近、PHP で無名関数を使いたいと思っていました。残念ながら、私のホストはまだ5.2
. 私はこれがうまくいくと自動的に思った:
uasort($array, function($a, $b) {
return $a > $b;
});
これが彼らの働き方ですか?コールバックではなく引数として渡されただけですか? ドキュメントでは具体的にはそうではありませんが、私は JavaScript の無名関数について実用的な知識を持っているので、そうなると思います。
私は最近、PHP で無名関数を使いたいと思っていました。残念ながら、私のホストはまだ5.2
. 私はこれがうまくいくと自動的に思った:
uasort($array, function($a, $b) {
return $a > $b;
});
これが彼らの働き方ですか?コールバックではなく引数として渡されただけですか? ドキュメントでは具体的にはそうではありませんが、私は JavaScript の無名関数について実用的な知識を持っているので、そうなると思います。
はい。通常の 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()
はコールバック用に使用されており、無名関数がサポートされているため、他のコールバックと同様に機能します。