Wie kann ich alle Eigenschaften eines Objekts durchlaufen? Im Moment muss ich eine neue Codezeile schreiben, um jede Eigenschaft des Objekts zu drucken
echo $obj->name;
echo $obj->age;
Kann ich mit foreach loop oder einer beliebigen Schleife alle Eigenschaften eines Objekts durchlaufen?
Etwas wie das
foreach ($obj as $property => $value)
foreach
Schleife, die Sie richtig machenforeach
(mit=>
nicht->
), um die öffentlichen Eigenschaften des Objekts zu durchlaufen . Sie können Ihre Klasse auch verfahrbar machen, wenn Sie ein anderes Verhalten wünschen.Antworten:
Wenn dies nur zum Debuggen der Ausgabe dient, können Sie Folgendes verwenden, um auch alle Typen und Werte anzuzeigen.
Wenn Sie mehr Kontrolle über die Ausgabe wünschen, können Sie Folgendes verwenden:
quelle
Zu Testzwecken verwende ich Folgendes:
quelle
Hier ist eine andere Möglichkeit, die Objekteigenschaft auszudrücken.
quelle
\ArrayAccess
oder ein istarray
, andernfalls wird Folgendes ausgelöst:FATAL ERROR Uncaught Error: Cannot use object of type SomeType as array
Manchmal müssen Sie die Variablen eines Objekts auflisten und nicht zu Debugging-Zwecken. Der richtige Weg, dies zu tun, ist die Verwendung von get_object_vars ($ object). Es gibt ein Array zurück, das alle Klassenvariablen und ihren Wert enthält. Sie können sie dann in einer foreach-Schleife durchlaufen. Wenn Sie innerhalb des Objekts selbst verwendet werden, führen Sie einfach get_object_vars ($ this) aus.
quelle