Possible Duplicate:
Workaround for basic syntax not being parsed
Why don't PHP attributes allow functions?PHPで配列に匿名関数を入れることはできますか?
私はこのコードから
Parse error: syntax error, unexpected T_FUNCTION in /home/codemonkey/dev/broadnet/bito.api2/broadnet/resources/broadmapresource.php on line 87
を取得しています:
private $debugFunctions = array(
"testing" => function() // Line 87
{
return "I'm a test function!";
},
"foo" => function()
{
return "bar";
}
);
私はどこでも私は$variables
を使用することができ、匿名のPHPの関数を使用することができた印象の下にありました。これは例外ですか、何か間違っていますか?私はあなたがクラスのプロパティでこれを行うことはできませんPHP 5.3.9
、およびこれに関連:[PHP属性が機能を許可していないのはなぜ?](http://stackoverflow.com/q/3960323)これはクラス外の通常の配列で機能しますか? PHPの設計上の脆弱性が浮かび上がってきます...しかし、関数は実際にはPHPのファーストクラスの市民ではありません。 –
クラス定義ではなくコンストラクタでこの代入を試みましたか? – Czechnology
通常通り:実行時情報を実行時にプロパティに割り当てることはできません。 LambdasはClosureクラスのインスタンスです。宣言でもインスタンスをプロパティとして持つことはできません。ラムダをそこに入れたいのであれば、ctorからラムダを追加する必要があります。 – Gordon