クラス内で定義した定数の一覧を得る方法
<?php class Foo { const BAR = 1; const BAZ = 2; }
get_defined_constantsを使えば全ての定数が取れると思いきや、上記のようなクラス内で定義した定数は取れなかった。
どうやったら取れるのか。PHPお得意の大量の関数の中に一覧取れるヤツが必ずあるはず!と思いきや、なかった。
諦めかけたその時、ReflectionClassというクラスを使えば取れることがわかったのだ!
<?php class Foo { const BAR = 1; const BAZ = 2; } $reflect = new ReflectionClass('Foo'); print_r( $reflect->getConstants() );
$ php test.php Array ( [BAR] => 1 [BAZ] => 2 )
PHP5になってから、PHPさんは関数からの脱却を図っている模様だ。
目的のものが標準関数に存在しなかったら、標準クラスを調べてみようというお話でした。