Heim >Backend-Entwicklung >PHP-Tutorial >Wie konvertiert man schnell ein PHP-Objekt in ein assoziatives Array?

Wie konvertiert man schnell ein PHP-Objekt in ein assoziatives Array?

DDD
DDDOriginal
2024-12-21 19:07:10432Durchsuche

How to Quickly Convert a PHP Object into an Associative Array?

So konvertieren Sie schnell ein PHP-Objekt in ein assoziatives Array

Bei der Integration von APIs, die mit objektbasierten Daten arbeiten, besteht häufig ein Bedarf um diese Objekte in Arrays umzuwandeln, um sie mithilfe von Arrays an vorhandenen Code anzupassen. Hier ist eine kurze und unkomplizierte Lösung, um diese Konvertierung durchzuführen:

Typisieren Sie das Objekt:

Um ein Objekt in ein assoziatives Array umzuwandeln, können Sie es einfach wie folgt typisieren:

$array = (array) $yourObject;

Diese Typisierungsmethode ist ein direkter und effizienter Ansatz. Es ist jedoch wichtig zu beachten, dass nur eine oberflächliche Konvertierung durchgeführt wird.

Zugriff auf Eigenschaften in Cast-Arrays:

Bei der Typumwandlung eines Objekts in ein Array gelten verschiedene Regeln bezüglich Zugänglichkeit von Grundstücken:

  • Öffentliche Grundstücke sind direkt im Gebäude zugänglich Array.
  • Private Eigenschaften haben „foo“ vor dem Variablennamen.
  • Geschützte Eigenschaften haben „*foo“ vor dem Variablennamen .

Integer-Eigenschaft Konvertierung:

Integer-Eigenschaften sind nicht zugänglich und werden nicht im konvertierten Array angezeigt.

Beispiel: Konvertieren eines Simple Objekt:

$object = new StdClass;
$object->foo = 1;
$object->bar = 2;

var_dump( (array) $object );

Ausgabe:

array(2) {
  'foo' => int(1)
  'bar' => int(2)
}

Beispiel: Konvertieren eines komplexen Objekts mit Private und Protected Eigenschaften:

class Foo {
    private $foo;
    protected $bar;
    public $baz;

    public function __construct() {
        $this->foo = 1;
        $this->bar = 2;
        $this->baz = new StdClass;
    }
}

var_dump( (array) new Foo );

Ausgabe:

array(3) {
  'Foofoo' => int(1)
  '*bar' => int(2)
  'baz' => class stdClass#2 (0) {}
}

Wie Sie sehen können, sind private und geschützte Eigenschaften im konvertierten Array mit dem angegebenen Präfix vorhanden Präfixe.

Deep Casting und Non-Public Eigenschaften:

Beachten Sie, dass diese Typumwandlungsmethode kein Deep Casting durchführt. Um auf nicht öffentliche Attribute zuzugreifen, müssen Sie möglicherweise explizit die Nullbytes anwenden, wie in der offiziellen PHP-Dokumentation erläutert.

Ausführlichere Informationen finden Sie in den verlinkten Ressourcen:

  • In PHP integrierte Klasse stdClass: https://www.php.net/manual/en/class.stdclass.php
  • Blog zur schnellen Konvertierung von PHP-Objekten in Arrays Beitrag: https://dereuromark.de/2011/02/03/fast-php-object-to-array-conversion/

Das obige ist der detaillierte Inhalt vonWie konvertiert man schnell ein PHP-Objekt in ein assoziatives Array?. 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