2009-09-03 11 views

risposta

6

È possibile utilizzare get_object_vars per elencare le variabili dell'oggetto e get_class_methods per elencare i metodi di una determinata classe.

+0

Nota questo non funziona con i metodi magici. – OIS

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

È possibile utilizzare ReflectionClass::getProperties e ReflectionClass::getMethods metodi del API Reflection per fare questo (anche se l'API non sembra essere molto ben documentato). Si noti che la riflessione di PHP riflette solo le informazioni sul tempo di compilazione, non gli oggetti di runtime. Se si desidera che gli oggetti di runtime siano inclusi anche nei risultati della query, è preferibile utilizzare le funzioni get_object_vars, get_class_vars e get_class_methods. La differenza tra get_object_vars e get_class_vars consiste nel fatto che il primo ottiene tutte le variabili su un dato oggetto (inclusi quelli aggiunti dinamicamente in fase di runtime), mentre quest'ultimo fornisce solo quelli che sono stati esplicitamente dichiarati nella classe.

+0

Risposta molto utile e completa, grazie! +1 –

+0

Penso che ci sia un punto importante da aggiungere quando si dice: "... get_class_vars ti dà solo quelle variabili che sono state esplicitamente dichiarate nella classe" e ANCHE i VALORI associati sono quelli dichiarati nella classe (il valori predefiniti) e NON i valori di runtime. –

Problemi correlati