2009-09-03 12 views

Odpowiedz

6

Można użyć get_object_vars, aby wyświetlić listę zmiennych obiektu i get_class_methods, aby wyświetlić listę metod danej klasy.

+0

Uwaga: to nie działa z magicznymi metodami. – OIS

12
Reflection::export(new ReflectionObject($Yourobject)); 
11

Można użyć ReflectionClass::getProperties i ReflectionClass::getMethods metod refleksji API to zrobić (chociaż API nie wydają się być bardzo dobrze udokumentowane). Zauważ, że odbicie PHP odzwierciedla tylko informacje o czasie kompilacji, a nie obiekty środowiska wykonawczego. Jeśli chcesz, aby obiekty środowiska wykonawczego były również uwzględniane w wynikach zapytania, najlepiej użyj funkcji get_object_vars, , get_class_vars i get_class_methods. Różnica między get_object_vars a get_class_vars polega na tym, że pierwsza pobiera wszystkie zmienne danego obiektu (w tym dynamicznie dodawane w czasie wykonywania), podczas gdy druga daje tylko te, które zostały jawnie zadeklarowane w klasie.

+0

Bardzo pomocna i kompletna odpowiedź, dzięki! +1 –

+0

Myślę, że jest ważny punkt, który należy dodać, gdy mówisz: "... get_class_vars podaje tylko te zmienne, które zostały wyraźnie zadeklarowane w klasie" i TAKŻE powiązane wartości są zadeklarowane w klasie (wartości domyślne), a NIE wartości środowiska wykonawczego. –

Powiązane problemy