関数ヘッダーでパラメーターが指定されている場合にのみ、php 匿名関数が機能する理由を理解しようとしています。
例えば
$f = function(){
echo "hello world";
};
$f;
$f();
動作しません。しかし
$f = function($argument){
echo $argument;
}
$f('hello world');
うまく動作します。
なぜ引数が必要なのですか?これに対する回避策はありますか?
編集
これはバージョンの問題に違いありません。私は 5.3.18 を使用していますが、最初の例は確実に機能しません。信じていない人のために、それはスローします:
Parse error: syntax error, unexpected T_FUNCTION in index.php(192) :
eval()'d code on line 1
編集
DaveRandom's answer を見た後、何が起こっているのかわからない状態に戻りました。それは、5.3.10で動作することが正しい場合です...