PHPのエラー『Warning: Use of Undefined Constant』の解決方法

  • 作成日 2025.04.01
  • php
PHPのエラー『Warning: Use of Undefined Constant』の解決方法

PHPで開発中に『Warning: Use of Undefined Constant』というエラーが発生することがあります。このエラーは、定義されていない定数を参照した場合に発生します。この記事では、このエラーの原因と解決方法について詳しく説明します。

エラーの発生条件

『Warning: Use of Undefined Constant』は、定義されていない定数を参照した場合に発生します。このエラーは、主に以下のような状況で発生します。

1. 引用符を忘れた文字列

文字列を引用符で囲むのを忘れた場合、PHPはそれを定数と見なします。定数が定義されていない場合、このエラーが発生します。

<?php
echo MY_CONSTANT; // Warning: Use of undefined constant MY_CONSTANT - assumed 'MY_CONSTANT'
?>

2. 配列のキーを引用符で囲まない

配列のキーを引用符で囲まない場合、PHPはそれを定数と見なします。定数が定義されていない場合、このエラーが発生します。

<?php
$array = array('key' => 'value');
echo $array[key]; // Warning: Use of undefined constant key - assumed 'key'
?>

3. 定数が定義されていない

定数が定義されていない場合、このエラーが発生します。定数を使用する前に定義する必要があります。

<?php
echo UNDEFINED_CONSTANT; // Warning: Use of undefined constant UNDEFINED_CONSTANT - assumed 'UNDEFINED_CONSTANT'
?>

4. 定数名にタイポがある

定数名にタイポがある場合、このエラーが発生します。定数名は正確に一致させる必要があります。

<?php
define('MY_CONSTANT', 'value');
echo MY_CONSTAN; // Warning: Use of undefined constant MY_CONSTAN - assumed 'MY_CONSTAN'
?>

5. 定数が異なるスコープで定義されている

定数が異なるスコープで定義されている場合、このエラーが発生します。定数はグローバルスコープで定義されるため、スコープに関係なく参照できますが、定義されていない場合はエラーが発生します。

<?php
function myFunction() {
    echo MY_CONSTANT; // Warning: Use of undefined constant MY_CONSTANT - assumed 'MY_CONSTANT'
}
myFunction();
?>

6. 定数が異なるファイルで定義されている

定数が異なるファイルで定義されている場合、そのファイルを読み込まないとこのエラーが発生します。

<?php
// constants.php
define('MY_CONSTANT', 'value');

// main.php
echo MY_CONSTANT; // Warning: Use of undefined constant MY_CONSTANT - assumed 'MY_CONSTANT'
?>

7. 定数が条件分岐内で定義されている

定数が条件分岐内で定義されている場合、条件が満たされないとこのエラーが発生します。

<?php
if (false) {
    define('MY_CONSTANT', 'value');
}
echo MY_CONSTANT; // Warning: Use of undefined constant MY_CONSTANT - assumed 'MY_CONSTANT'
?>

8. 定数がループ内で定義されている

定数がループ内で定義されている場合、ループが実行されないとこのエラーが発生します。

<?php
for ($i = 0; $i < 0; $i++) {
    define('MY_CONSTANT', 'value');
}
echo MY_CONSTANT; // Warning: Use of undefined constant MY_CONSTANT - assumed 'MY_CONSTANT'
?>

9. 定数が関数内で定義されている

定数が関数内で定義されている場合、関数が呼び出されないとこのエラーが発生します。

<?php
function defineConstant() {
    define('MY_CONSTANT', 'value');
}
echo MY_CONSTANT; // Warning: Use of undefined constant MY_CONSTANT - assumed 'MY_CONSTANT'
?>

10. 定数がクラス内で定義されている

定数がクラス内で定義されている場合、クラスがインスタンス化されないとこのエラーが発生します。

<?php
class MyClass {
    const MY_CONSTANT = 'value';
}
echo MY_CONSTANT; // Warning: Use of undefined constant MY_CONSTANT - assumed 'MY_CONSTANT'
?>

11. 定数が異なる名前空間で定義されている

定数が異なる名前空間で定義されている場合、名前空間を指定しないとこのエラーが発生します。

<?php
function defineConstant() {
    define('MY_CONSTANT', 'value');
}
echo MY_CONSTANT; // Warning: Use of undefined constant MY_CONSTANT - assumed 'MY_CONSTANT'
?>

12. 定数が正しいファイル名で保存されていない

定数が正しいファイル名で保存されていない場合、そのファイルを読み込まないとこのエラーが発生します。

<?php
class MyClass {
    const MY_CONSTANT = 'value';
}
echo MY_CONSTANT; // Warning: Use of undefined constant MY_CONSTANT - assumed 'MY_CONSTANT'
?>

これらの例を見てわかるように、『Warning: Use of Undefined Constant』は、主に定数が定義されていないか、正しく参照されていない場合に発生します。定数を正しく定義し、参照することで、このエラーを解決することができます。