Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】ReflectionObject::getAttributes()メソッドの使い方

getAttributesメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

getAttributesメソッドは、指定されたオブジェクトに付与されたアトリビュートの情報を取得するメソッドです。アトリビュートとは、PHP 8から導入された機能で、クラス、メソッド、プロパティなどのプログラムの要素に対して、追加の情報をメタデータとして付与するための特別な記述です。

このメソッドは、ReflectionObjectクラスのインスタンスが表すオブジェクト自体、またはそのオブジェクトのクラスに定義されている全てのアトリビュートを調べ、その詳細な情報を取得します。例えば、特定のクラスがデータベースと連携するための設定を持つアトリビュートが付与されている場合や、WebアプリケーションのコントローラーメソッドがどのURLに対応するかを示すアトリビュートが付与されている場合などに、プログラムは実行時にこれらの情報を読み取ることができます。

取得されたアトリビュートの情報は、ReflectionAttributeオブジェクトの配列として返されます。それぞれのReflectionAttributeオブジェクトには、アトリビュートの名前や、それに設定されている引数の値などが含まれており、これらの情報を使ってプログラムの振る舞いを動的に変更したり、特定の処理を自動化したりすることが可能になります。実行時にオブジェクトのメタデータを検査し、柔軟な処理を実現したい場合に非常に役立ちます。

構文(syntax)

1<?php
2
3$object = new stdClass();
4$reflectionObject = new ReflectionObject($object);
5$attributes = $reflectionObject->getAttributes();
6
7?>

引数(parameters)

?string $name = NULL, int $flags = 0

  • ?string $name: 取得したい属性の名前。指定しない場合はすべての属性を取得します。
  • int $flags = 0: 属性の取得方法を制御するフラグ。

戻り値(return)

array

指定されたReflectionObjectのgetAttributesメソッドは、そのオブジェクトに付与されているすべての属性(Attribute)の配列を返します。この配列には、ReflectionAttributeオブジェクトのインスタンスが含まれます。

関連コンテンツ