PHPで定数が定義されているか確認する
更新:
PHPで定数が定義されているか確認し、未定義の場合は出力しない。defined、constant 関数の使用例。
定数が定義されているか確認する
例えば未定義の定数 HOGE を echo してみると HOGE という文字列が出力される。
echo HOGE;
定数の名前を間違えたり、変更したり、定義し忘れたりすると起こり得る。
そこで定義したかどうか確認してから出力する。
if(defined('HOGE')){
echo HOGE;
}
defined() は定数が定義されていれば TRUE、それ以外は FALSE を返す。
constant 関数
定数を出力する際、constant() を使う方法もある。
constant 関数は単に定数を返し、未定義の場合は NULL を返す。
echo constant('HOGE');
上記のように未定義の定数を出力すると内部的に警告は出るが、警告はページには出力されない。
また、未定義の定数が文字列で出力されることもない。
まあ、defined() を使う方が丁寧かもしれない。
定数に配列を定義し、constant で特定の配列を出力したい場合は以下のように書く。
define('HOGE', array('a', 'b'));
echo constant('HOGE')[0];
constant('HOGE[0]') や constant('HOGE'[0]) と書くと警告が出て定数は出力されない。