質問: new a(); echo $x->printa(); ?>
回答: 以下のものは必ず右辺は静的な値でなければなりません。 ・クラスプロパティ宣言 (private, protected, public, var キーワード) ・クラス定数宣言 (constキーワード) ・定数宣言 (constキーワードを使う場合のみ、define関数による定義は除く) ・静的変数宣言 (staticキーワード) 静的な値の例を述べます。 ・null ・true ・1 ・'hoge' ・array() ・array(3 => 'hoge', 'five' => array('fuga')) 以下のような特徴があると思われます。 ・変数展開を使ってはいけない ・演算子を使ってはいけない ・関数を使ってはいけない (arrayキーワードは関数ではないので大丈夫) ・クラスのインスタンスを生成してはいけない ただ、php5.6からはこの制限が少し緩和されるようです。 http://php.net/manual/ja/migration56.new-features.php#migration56.new-features.const-scalar-exprs