2011-12-21 2 views
2

このコードは、 "unexpected"、 "expecting ')'"エラーが発生します。これはなぜ無効ですか?私は両方の部分が一定であるので、私はそれらを連結できると思っていた。 PHPの初心者です。ありがとう。Arrayクラスのプロパティ

class c { 
    const HELLO = 'hello'; 
    public $arr = array(
    'hw' => self::HELLO . 'world' 
); 
} 
+0

が重複する可能性を(http://stackoverflow.com/questions/2671928/workaround-for -basic-syntax-not-parsed) – mario

+1

あなたを助けた人に報酬を与えるには、以下の回答を受け入れる必要があります。 :) –

答えて

6

クラスプロパティの初期値は一定でなければなりません。これら2つの文字列の連結は定数ではありません。

から

documentation

[プロパティ]一定値でなければならない初期化するが、この初期を含んでいてもよい宣言 - つまり、それができなければならないが、コンパイル時に評価されるようにしなければならず評価するために実行時情報に依存しない。

あなたのコンストラクタでプロパティの初期化を入れることができます:[解析されていない基本的な構文のための回避策]の

public function __construct() 
{ 
    $this->arr = array(
    'hw' => self::HELLO . 'world' 
); 
} 
+0

ありがとうございます。私はそれが一定であると思っていた。私は今、オペレータがそれを表現するという点を見ています。 –

関連する問題