式を使用してクラス プロパティを初期化することはできません。これは定数値であるか、コンストラクターで初期化する必要があります。それが構文エラーの原因です。
class myObj {
public $birth_month;
public $birthday;
// Initialize it in the constructor
public function __construct($birth_month) {
$this->birth_month = $birth_month;
$this->birthday = array('input_val' => $this->birth_month);
}
}
クラス プロパティのドキュメントから:
それらは、キーワード public、protected、または private のいずれかを使用して定義され、その後に通常の変数宣言が続きます。この宣言には初期化が含まれる場合がありますが、この初期化は定数値である必要があります。つまり、コンパイル時に評価できる必要があり、評価されるために実行時の情報に依存してはなりません。
最初の試みでは、インスタンス メソッドの内部でのみ意味がある$this
ため、プロパティ初期化のコンパイル時の制限をむき出しにしても、インスタンス メソッドの外部での使用はサポートされませんでした。$this