[PHP]Fatal error: Cannot redeclare class …


重複したクラス・関数を読み込むとこのエラーが発生します。

例えば、Helloというクラスが既に存在するのにHelloというクラスを新たに作成していたような場合です。

「ん?作ってないぞ・・・」

作った記憶がないのにCannot redeclare …となりちょっとつまづきました。

原因はindex.phpとheader.phpという2つのファイルで同じファイルをinclude()していたことでした。

include_once ()を使って1度しか読み込まないようにしたら問題は解消されました。

参考

include_once()は、スクリプトの実行時に同じファイ ルが複数回読み込まれ、評価される可能性がある場合に、関数の再定義や 変数値の再代入といった問題を回避するために一回だけ読み込ませるため に使用します。

http://php.net/manual/ja/function.include-once.php