JavaScriptを有効にしてください

【PHP】PHP Fatal error: Constant expression contains invalid operations 解決方法

 ·  ☕ 1 分で読めます

【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 というエラーが発生します。

1
2
3
4
5
6
7
<?php
class Now {
    public $now = time();
}

$class = new Now();
var_dump($class->now);

原因

原因はプロパティ宣言時に time() を実行していることです。

宣言時に初期値を設定することもできますが、 初期値は 定数 値でなければなりません。
PHP: プロパティ - Manual

なので プロパティ宣言時に関数やクラス、メソッドの実行が出来ません。

対処

対処としてはコンストラクタ内で初期値を代入することです。
これによってプロパティに関数やクラスの関数やクラス、メソッドの実行値が入ります。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<?php
class Now {
    public $now;

    public function __construct(){
        // 初期値を代入
        $this->now = time();
    }
}

$class = new Now();
var_dump($class->now);
共有

こぴぺたん
著者
こぴぺたん
Copy & Paste Engineer