PHP

[対処法]Notice: Constant already defined

Notice: Constant (定数名) already definedとは

PHPを使用している「Notice: Constant (定数名) already defined」というエラーがたまにおきます。こちらは定数に関するエラーで、このエラーが検出されるとPHPの実行が停止してしまいます。

Notice: Constant (定数名) already definedの原因

「Notice: Constant (定数名) already defined」の出力原因は定義済みの定数を再度定義しようとした場合に出力されます。

定数を再度定義することは辞めましょう✖

下記にエラーが出るコードを記載いたします。

<?php

define('apple' , '赤い奴');

define('apple' , 'リンゴ');

echo apple;

「apple」は「赤い奴」として定義しているのに、再度「リンゴ」として定義しようとしているのでエラーが起きます。

色々な箇所で定義を定義していると知らない間に2重定義をしてしまいますので、定数を定義するファイルはできるだけ一つにまとめましょう。

Notice: Constant (定数名) already definedの対処法

defined()に定数がセットされているか調べることができる関数を紹介します。

<?php

if (!defined('apple')){
    define('apple' , 'リンゴ');
}
echo apple;

このようにもし「apple」が既に定義されていたら、「true」、定義されていない場合は「false」を返します。

定義されていない場合だけ、値をセットするようにすれば解決です。

Notice: Constant already definedのまとめ

同じ名前の定数を2回以上定義してしまうのは、忘れているということです。

定数を宣言する際は、定数宣言用のソースファイルを作成し、そちらにまとめてみてはいかがでしょうか。