php-定義されている定数の一覧を取得

フレームワークを作っていて、定義されている定数の一覧を見てみたいなーと思った時に調べてみた事です。

[php gutter="false"]
(PHP 4 >= 4.1.0, PHP 5)
get_defined_constants — すべての定数の名前とその値を連想配列として返す
array get_defined_constants ([ bool $categorize = false ] )
[/php]

サンプルコード
[php]
$tmp = get_defined_constants(true);
print “

";
print_r($tmp['user']);
print "

“;
[/php]

get_defined_constants()の引数に「true」を指定する事で返り値が多次元配列になって結果が下記のようになる
[php]
Array
(
[Core] => Array
(
[E_ERROR] => 1
[E_WARNING] => 2
[E_PARSE] => 4
[E_NOTICE] => 8
[E_CORE_ERROR] => 16
[E_CORE_WARNING] => 32
[E_COMPILE_ERROR] => 64
[E_COMPILE_WARNING] => 128
[E_USER_ERROR] => 256
[E_USER_WARNING] => 512
[E_USER_NOTICE] => 1024
[E_ALL] => 2047
[TRUE] => 1
)

[pcre] => Array
(
[PREG_PATTERN_ORDER] => 1
[PREG_SET_ORDER] => 2
[PREG_OFFSET_CAPTURE] => 256
[PREG_SPLIT_NO_EMPTY] => 1
[PREG_SPLIT_DELIM_CAPTURE] => 2
[PREG_SPLIT_OFFSET_CAPTURE] => 4
[PREG_GREP_INVERT] => 1
)

[user] => Array
(
[MY_CONSTANT] => 1
)

);

[/php]

$tmpの配列のキーに['user’]を指定する事でプログラマが定義した定数だけを配列で取得できるようになる。
サンプルコードでの結果は下記の通り
[php]
Array
(
[MY_CONSTANT] => 1
);
[/php]

phpphp

Posted by てらん