Czy istnieje funkcja wyświetlania wszystkich atrybutów obiektu (takich jak publiczne metody i właściwości) w PHP, podobnie jak w przypadku Pythona dir()
?Funkcja PHP do wypisywania wszystkich atrybutów obiektów
Odpowiedz
Można użyć get_object_vars
, aby wyświetlić listę zmiennych obiektu i get_class_methods
, aby wyświetlić listę metod danej klasy.
PHP5 zawiera kompletny Reflection API, który wykracza poza to, co mogą zrobić starsze wersje: get_class_methods i get_object_vars.
Reflection::export(new ReflectionObject($Yourobject));
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.
Bardzo pomocna i kompletna odpowiedź, dzięki! +1 –
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. –
- 1. Wzorzec do dynamicznego dodawania atrybutów do obiektów
- 2. Rails 5 obiektów modelu nie pokazujących wszystkich atrybutów Devise
- 3. Dodawanie istniejącego atrybutu do wszystkich zestawów atrybutów
- 4. Czy istnieje skrócona składnia Twig do wypisywania tekstu warunkowego?
- 5. Lista obiektów i atrybutów JMX?
- 6. Model szkieletu. ToJSON() nie renderuje wszystkich atrybutów do JSON
- 7. Dekodowanie wszystkich obiektów HTML
- 8. Wyszukiwanie wektora obiektów według atrybutów obiektu
- 9. Pobieranie atrybutów obiektów R w JavaScript
- 10. PHP SoapClient i odczyt atrybutów
- 11. Uzyskiwanie dostępu do atrybutów obiektów w metodzie renderowania Reagent
- 12. Zachowanie saveRDS() i readRDS() w odniesieniu do atrybutów obiektów
- 13. Powtórz nad tabelą obiektów i atrybutów powrotu
- 14. Jak uzyskać listę atrybutów z ArrayList obiektów
- 15. Get * wszystkich * atrybutów CSS z jQuery
- 16. Suma danych podstawowych wszystkich atrybutów instancji
- 17. Walidacja obiektów PHP
- 18. Przypisanie obiektów w PHP
- 19. Tablica obiektów PHP
- 20. Buforowanie obiektów MongoDB w PHP
- 21. Przechowywanie obiektów w sesji PHP
- 22. Funkcja PHP do zwracania ciągu znaków
- 23. PHP - hash_pbkdf2 funkcja
- 24. php Anonimowa funkcja
- 25. Funkcja move_uploaded_file w PHP
- 26. Funkcja autoloadera PHP vs. funkcja autoloadera proceduralnego?
- 27. Jak przekazać wiele atrybutów do dyrektywy atrybutów Angular.js?
- 28. PHP - podzielić ciąg atrybutów HTML do tablicy indeksowanej
- 29. Funkcja recursive delete PHP
- 30. Funkcja PHP() dla zakresu?
Uwaga: to nie działa z magicznymi metodami. – OIS