Heim >Backend-Entwicklung >PHP-Tutorial >Wie konvertiert man PHP-Objekte effektiv in Arrays?

Wie konvertiert man PHP-Objekte effektiv in Arrays?

Linda Hamilton
Linda HamiltonOriginal
2024-12-07 15:23:12391Durchsuche

How to Effectively Convert PHP Objects into Arrays?

So konvertieren Sie ein Objekt in ein Array

Eindimensionale Arrays

Für eindimensionale Arrays können Sie entweder Casting oder get_object_vars verwenden Funktion.

Casting:

$array = (array) $object;

get_object_vars:

$array = get_object_vars($object);

Während beide Methoden ein Objekt in ein konvertieren Anordnung weisen sie subtile Unterschiede auf. get_object_vars gibt nur öffentlich zugängliche Eigenschaften zurück, es sei denn, es wird innerhalb des Objektbereichs aufgerufen. Beim Casting bleiben jedoch alle Mitglieder erhalten, einschließlich privater und geschützter.

Mehrdimensionale Arrays

Für mehrdimensionale Arrays können Sie verschiedene Ansätze verwenden.

JSON-Kodierung und -Dekodierung:

Wenn Ihr Objekt als JSON kodiert werden kann, können Sie es verwenden Die nativen JSON-Funktionen von PHP:

$array = json_decode(json_encode($object), true);

Diese Methode enthält keine privaten und geschützten Mitglieder und ist nicht für Objekte geeignet, die nicht JSON-kodierbare Daten enthalten.

Rekursive Funktion:

Die folgende Funktion konvertiert ein Objekt rekursiv in ein Array, einschließlich privat und geschützt Mitglieder:

function objectToArray($object) {
    if(!is_object($object) && !is_array($object))
        return $object;

    return array_map('objectToArray', (array) $object);
}

Das obige ist der detaillierte Inhalt vonWie konvertiert man PHP-Objekte effektiv in Arrays?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn