Fatal Error: Interfaces Cannot Contain Constant の解決方法

  • 作成日 2025.06.17
  • php
Fatal Error: Interfaces Cannot Contain Constant の解決方法

PHPで「Fatal Error: Interfaces Cannot Contain Constant」というエラーが発生する原因とその解決方法を詳しく解説する。主に、インターフェースに定数を定義しようとした際に発生するエラーであり、適切な修正方法を理解することが重要である。

エラーの発生条件

このエラーは、PHP 7.1 以前のバージョンでインターフェース内に定数を定義しようとした場合に発生する。

エラーメッセージの例

以下のようなコードを実行するとエラーが発生する。

interface SampleInterface {
    const VALUE = 'constant';
}

このコードはPHP 7.1以前ではエラーとなる。

解決策1: PHPのバージョンを確認する

PHP 7.1以降のバージョンでは、インターフェースに定数を定義できるため、PHPのバージョンを確認し、必要に応じて更新する。

解決策2: クラスで定数を定義する

インターフェースではなく、抽象クラスを使用することで回避できる。

abstract class SampleAbstractClass {
    const VALUE = 'constant';
}

解決策3: 定数の定義場所を変更する

グローバル定数として定義することで、エラーを回避できる。

define('VALUE', 'constant');

解決策4: トレイトを使用する

PHP 7.1以前のバージョンでは、トレイトを使用することで定数を利用できる。

trait SampleTrait {
    public static function getValue() {
        return 'constant';
    }
}

まとめ

「Fatal Error: Interfaces Cannot Contain Constant」は、主に古いPHPバージョンで発生する。PHPのバージョンアップ、抽象クラスの利用、グローバル定数の使用、トレイトの活用など、状況に応じた解決策を選ぶことで問題を回避できる。