2009-09-03 12 views

Antwort

6

Sie können get_object_vars verwenden, um Objektvariablen aufzulisten, und get_class_methods, um die Methoden einer bestimmten Klasse aufzulisten.

+0

Beachten Sie, dass dies nicht mit magischen Methoden funktioniert. – OIS

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

können Sie das ReflectionClass::getProperties und ReflectionClass::getMethods Methoden des Reflection-API verwenden, um dies zu tun (obwohl die API scheint nicht sehr gut dokumentiert zu sein). Beachten Sie, dass die PHP-Reflektion nur Informationen zur Kompilierzeit und keine Laufzeitobjekte enthält. Wenn Sie auch Laufzeitobjekte in Ihre Abfrageergebnisse aufnehmen möchten, verwenden Sie am besten die Funktionen get_object_vars, get_class_vars und get_class_methods. Der Unterschied zwischen get_object_vars und get_class_vars besteht darin, dass der erstere alle Variablen für ein gegebenes Objekt (einschließlich derjenigen, die zur Laufzeit dynamisch hinzugefügt werden) erhält, während die zweite Ihnen nur diejenigen gibt, die explizit in der Klasse deklariert wurden.

+0

Sehr hilfreiche und vollständige Antwort, danke! +1 –

+0

Ich denke, es gibt einen wichtigen Punkt hinzuzufügen, wenn Sie sagen: "... get_class_vars gibt Ihnen nur die Variablen, die explizit in der Klasse deklariert wurden" und auch die zugehörigen Werte sind die in der Klasse deklarierten Standardwerte) und NICHT die Laufzeitwerte. –

Verwandte Themen