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]) と書くと警告が出て定数は出力されない。
このエントリーをはてなブックマークに追加