0

静的メソッドの出力を PHP の静的変数に割り当てようとしていますが、常にエラーが発生します。

解析エラー: 構文エラー、8 行目の ./MyClass.php の予期しない T_FUNCTION

class MyClass
{
    public static function myMethod()
    {
        return array('a' => 'b'); //some array
    }

    public static $myarr = self::myMethod();
}

私も試しました...

class MyClass
{
    public static $myarr = call_user_func(function
        {
            return array('a' => 'b'); //some array
        }
    );
}

...しかし、3行目で同じエラーが発生します。これを何度も経験しましたが、タイプミスは見られないため、何が間違っているのかわかりません。何か案は?

4

2 に答える 2

4

宣言時に関数を呼び出して、静的変数に値を代入することはできません。

マニュアルからの引用(私の強調):

それらは、キーワード public、protected、または private のいずれかを使用して定義され、その後に通常の変数宣言が続きます。この宣言には初期化が含まれる場合がありますが、この初期化は定数値である必要があります。つまり、コンパイル時に評価できる必要があり、評価されるために実行時の情報に依存してはなりません

于 2013-07-29T21:03:46.137 に答える