【PHP】PHP Fatal error: Constant expression contains invalid operations 解決方法
【PHP】PHP Fatal error: Constant expression contains invalid operations 解決方法
PHP Fatal error: Constant expression contains invalid operations 解決方法メモ
現象
以下のようなコードの場合に PHP Fatal error: Constant expression contains invalid operations というエラーが発生します。
<?php
class Now {
public $now = time();
}
$class = new Now();
var_dump($class->now);
原因
原因はプロパティ宣言時に time() を実行していることです。
宣言時に初期値を設定することもできますが、 初期値は 定数 値でなければなりません。 PHP: プロパティ - Manual
なので プロパティ宣言時に関数やクラス、メソッドの実行が出来ません。
対処
対処としてはコンストラクタ内で初期値を代入することです。 これによってプロパティに関数やクラスの関数やクラス、メソッドの実行値が入ります。
<?php
class Now {
public $now;
public function __construct(){
// 初期値を代入
$this->now = time();
}
}
$class = new Now();
var_dump($class->now);