定数を = に設定した''
場合
、定数に何かが含まれているかどうかを確認するにはどうすればよいですか?
(つまり、空の文字列以外に設定されているかどうかを確認します。)
defined()
すでに定義されているため(として)、私が望むことはしません''
。
isset()
定数では機能しません。
簡単な方法はありますか?
マニュアルによると、「[...]変数が設定されており、NULLではない」かどうかを返しisset()
ます。
定数は変数ではないため、チェックできません。ただし、これを試すこともできます。
define('FOO', 1);
if (defined('FOO') && 1 == FOO) {
// ....
}
したがって、定数が空の文字列として定義されている場合は、最初にそれが実際にあるかどうかを確認defined
してから、その値を確認する必要があります ( '' == MY_CONSTANT
)。
定数を割り当てると仮定すると(そしてそれはシステム定義の定数ではありません)、次を使用します。
if(array_key_exists("MY_CONSTANT", get_defined_constants(true)['user'])){
echo MY_CONSTANT; //do stuff
}
これが機能するのget_defined_constants(true)
は、 の配列結果がすべての定義済み定数の配列であり、定義したものはすべて sub-array に格納されるためです['user']
。
マニュアルを参照してください。