エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

【PHP】クラスに定義した定数名と値を全て取得したいとき【766日目】

定数を全て確認したい

class Items
{
  const MAX_COUNT = 5;
  const ITEM_NAME = 'Hoge';
}

こんなふうにクラスがあって、

php > var_dump(Items::MAX_COUNT);
int(5)

こんなふうに値が取れる。

でも、『どんな定数名が存在するか』とか、『全部定数がほしい』ってときにどうするか

ReflectionClassとgetConstantsを使う

php > $item = new ReflectionClass(Items::class);
php > var_dump($item->getConstants());
array(2) {
  ["MAX_COUNT"]=>
  int(5)
  ["ITEM_NAME"]=>
  string(4) "Hoge"
}

ReflectionClass経由で、getConstantsを起動すると、このようにキーと値が出てきます。

公式ドキュメント

https://www.php.net/manual/ja/reflectionclass.getconstants.php