【PHP8.x】ReflectionObject::getProperties()メソッドの使い方
getPropertiesメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
getPropertiesメソッドは、ReflectionObjectによって表現されるオブジェクトが持つすべてのプロパティ、または指定された条件に合致するプロパティに関する情報を取得するメソッドです。このメソッドは、実行時にオブジェクトの内部構造、具体的にはそのオブジェクトがどのようなメンバ変数(プロパティ)を持っているかを動的に調べたい場合に非常に役立ちます。
このメソッドを実行すると、取得された各プロパティについての詳細な情報を提供するReflectionPropertyオブジェクトの配列が返されます。各ReflectionPropertyオブジェクトからは、プロパティ名、宣言されたクラス、値の取得・設定といった操作が可能になります。
オプションとして、引数にフィルターフラグを指定することができます。これにより、public、protected、privateといった可視性を持つプロパティや、staticプロパティなど、特定の条件に合致するプロパティのみを抽出して取得することが可能です。例えば、ReflectionProperty::IS_PUBLICを指定すれば、publicなプロパティだけを対象とすることができます。
システム開発においては、フレームワークやライブラリの実装、あるいはオブジェクト指向設計における高度な情報操作を行う際に、オブジェクトの構造を柔軟に解析し、動的な処理を実現するために利用されます。
構文(syntax)
1<?php 2 3class MyObject { 4 public $publicProperty; 5 protected $protectedProperty; 6 private $privateProperty; 7} 8 9$object = new MyObject(); 10$reflection = new ReflectionObject($object); 11 12$properties = $reflection->getProperties();
引数(parameters)
?int $filter = null
- ?int $filter = null: 取得するプロパティのフィルタを指定します。省略した場合、または
nullの場合は、すべてのアクセスレベル(public, protected, private)のプロパティが取得されます。
戻り値(return)
array
ReflectionObject::getPropertiesは、そのオブジェクトが持つプロパティのReflectionPropertyオブジェクトを格納した配列を返します。