1

PHP の知識を更新していて、自分では解決できない問題があります。

さらに (多次元の) 静的クラス配列の値として格納したい 2 つのプライベート静的配列を持つクラスがありますが、常に *予期しない T_VARIABLE* エラーが発生します。これは失敗する私の単純化されたサンプルコードです(次の多次元配列を埋めるために2つの静的配列ではなく1つだけです):

class MyClass {
  private static $firstArr = array('a' => 'A', 'b' => 'B');

  private static $multiArr = array('a' => self::$firstArr);
}

ここで何が問題なのか本当にわかりません。self::$firstArrを$firstArr自体の配列宣言に簡単に置き換えることができますが、とにかく、ここで間違っていることを理解したいと思います。

というわけで、コメント大歓迎です!

乾杯、ローマ。

4

1 に答える 1

3

クラスのプロパティを宣言するときに、追加の評価を行うことはできません。

private static $multiArr = array('a' => self::$firstArr);
//                Can't do this    -----^

ドキュメント内のリンク

この宣言には初期化が含まれる場合がありますが、この初期化は定数値である必要があります。つまり、コンパイル時に評価できる必要があり、評価されるために実行時の情報に依存してはなりません。

コピー/貼り付けを避けるのは正しい - この種の「実行時情報」は通常、コンストラクターで行われます。

于 2012-08-12T13:49:32.037 に答える