なぜこれは機能しませんか?PHPの配列要素を匿名関数として定義できないのはなぜですか?
$arr=array(
7,
'h',
function($text){echo $text;}
);
$arr[2]('some text');
「一部のテキスト」をエコーしたいと思いますが、予期しないT_FUNCTIONがあると言います。
なぜこれは機能しませんか?PHPの配列要素を匿名関数として定義できないのはなぜですか?
$arr=array(
7,
'h',
function($text){echo $text;}
);
$arr[2]('some text');
「一部のテキスト」をエコーしたいと思いますが、予期しないT_FUNCTIONがあると言います。
私の知る限りでは、匿名関数がPHP 5.3.0で追加されました。このエラーは、使用しているバージョンがサポートしていないことを示しています。
確かに正しい答えと思われます。私は(も、PHP 5.3.xで)配列構文での機能が動作することを確認されませんでしたので、私はちょうどそれをテストしてみた、動作するようには思えん:
<?php
echo phpversion() . ": ";
$foo = array(
'test' => function() {
return 'This is my test.';
}
);
echo $foo['test']();
?>
、私のマシン上で(出力しますもちろん):
5.3.2-1ubuntu4.7:これは私のテストです。
代わりにcreate_function()を使用できることがわかりました –