Pythonのdir()
と同様に、すべてのオブジェクトの属性(パブリックメソッドやプロパティなど)をPHP)に一覧表示する関数はありますか?
PHP5には、古い get_class_methods および get_object_vars が実行できることを超えるための完全な Reflection API が含まれています。
Reflection APIの ReflectionClass::getProperties
および ReflectionClass::getMethods
メソッドを使用してこれを行うことができます(ただし、APIは十分に文書化されていないようです)。 PHPリフレクションは、ランタイムオブジェクトではなく、コンパイル時の情報のみを反映することに注意してください。ランタイムオブジェクトもクエリ結果に含める場合は、 get_object_vars
を使用するのが最適です。 、 get_class_vars
および get_class_methods
関数。get_object_vars
とget_class_vars
の違いは、前者が特定のオブジェクトのすべての変数(実行時に動的に追加される変数を含む)が提供されますが、後者はクラスで明示的に宣言された変数のみを提供します。
Reflection::export(new ReflectionObject($Yourobject));
get_object_vars
オブジェクト変数を一覧表示し、get_class_methods
特定のクラスのメソッドを一覧表示します。
さらに深く掘り下げて、オブジェクトのプライベート変数も取得したい場合は、クロージャを使用できます。お気に入り:
$sweetsThief = function ($obj) {
return get_object_vars($obj);
};
$sweetsThief = \Closure::bind($sweetsThief, null, $myobj);
var_dump($sweetsThief($myobj));