定義は、定数を定義するためにPHPで使用される関数です。その構文は非常にシンプルです:
define('CONSTANT_NAME', 'value');
この関数は、定数定数の値を「値」に設定し、定義が定義されると修正されていません。
ただし、コード内の定数を複数回defing()に誤って呼び出すと、同じ名前の定数を定義すると、PHPはエラーを報告します。
Notice: Constant CONSTANT_NAME already defined
定義された()関数は、定数が定義されているかどうかを確認するために使用されます。その構文は次のとおりです。
defined('CONSTANT_NAME');
定数が既に定義されている場合、定義された()がtrueを返し、それ以外の場合は偽りです。
定数を繰り返し定義することによって引き起こされるエラーを回避するために、 define()とdefined()を組み合わせて使用できます。特定の方法は次のとおりです。定数を定義する前に、定義された()を使用して、定数がすでに存在するかどうかを確認します。定数が定義されていない場合、 define()を使用して定義します。
<?php
if (!defined('MY_CONSTANT')) {
define('MY_CONSTANT', 'SomeValue');
}
echo MY_CONSTANT; // 出力: SomeValue
?>
上記のコードでは、定義された( 'my_constant')が最初にmy_constantが定義されているかどうかを決定します。定義がない場合は、定義を定義するために定義()を実行します。
この方法は、多くの場合、特に外部ライブラリまたはフレームワークを使用する場合に非常に実用的です。これは、定数の定義問題の繰り返しに遭遇することがよくあります。たとえば、複数のファイルをPHPファイルに導入すると、これらのファイルはすべて同じ定数を定義しようとする場合があります。各ファイルが定数が定義されているかどうかを確認しない場合、これらのファイルを含めるときに定義エラーが重複する場合があります。
定義()と定義()を組み合わせることにより、同じ定数が一度だけ定義されることを確認できます。したがって、不必要なエラーを回避できます。
2つのファイルfile1.phpとfile2.phpがあるとします。どちらも同じ定数Site_urlを定義しようとします。定数が定義されているかどうかを確認するためにdefined()を使用しない場合、エラーが発生します。