Die Konvertierung von PHP-Objekten in Arrays ist eines der Probleme, auf die viele Programmierer während der Entwicklung häufig stoßen. Objekte und Arrays sind in PHP häufig verwendete Datentypen, sie unterscheiden sich jedoch. Ein Objekt ist ein komplexer Datentyp, der eine Instanz einer Klasse darstellt, während ein Array eine geordnete Sammlung ist, die mehrere Skalare, Arrays, Objekte und andere Elemente enthält. Wie konvertiere ich ein Objekt in ein Array? In diesem Artikel werden verschiedene Methoden vorgestellt.
Methode 1: Cast verwenden
Sie können Cast verwenden, um ein Objekt in ein Array umzuwandeln. Übergeben Sie beim Umwandeln das Objekt an ein Array und verwenden Sie (array), um das Objekt in ein Array umzuwandeln. Beispiel:
class Student{ public $name; public $age; } $stu = new Student(); $stu->name = "Tom"; $stu->age = 18; $arr = (array)$stu; print_r($arr);
Das Ausgabeergebnis lautet:
Array ( [name] => Tom [age] => 18 )
Diese Methode ist einfach und effektiv, es ist jedoch zu beachten, dass bei der Umwandlung des Umwandlungstyps möglicherweise einige Attribute verloren gehen, da durch die Umwandlung des Umwandlungstyps nicht öffentliche Eigenschaften in entfernt werden Objekt. Eigenschaften (privat und geschützt) werden verworfen.
Methode 2: Verwenden Sie die Objektmethode
Wenn Sie die nicht öffentlichen Eigenschaften im Objekt in ein Array konvertieren möchten, können Sie dies mit der Objektmethode get_object_vars() erreichen. get_object_vars() gibt ein Array zurück, das die Attribute eines Objekts und ihre Werte enthält. Zum Beispiel:
class Student{ public $name; private $age; public function __construct($name, $age){ $this->name = $name; $this->age = $age; } public function getAge(){ return $this->age; } } $stu = new Student("Tom", 18); $arr = get_object_vars($stu); $arr['age'] = $stu->getAge(); print_r($arr);
Das Ausgabeergebnis ist:
Array ( [name] => Tom [age] => 18 )
Mit der Methode get_object_vars() kann das Objekt in ein Array umgewandelt werden, während die privaten Attribute im Objekt erhalten bleiben.
Methode 3: Rekursive Konvertierung
Die rekursive Methode konvertiert Objekte und Arrays rekursiv in Arrays. Diese Methode konvertiert ein Objekt in jeder Situation in ein Array, auch wenn es in anderen Objekten oder Arrays verschachtelt ist. Das Folgende ist ein Beispiel für eine rekursive Konvertierung:
class Student{ public $name; public $age; public function __construct($name, $age){ $this->name = $name; $this->age = $age; } } class Grade{ public $name; public $students; public function __construct($name, $students){ $this->name = $name; $this->students = $students; } } $stu1 = new Student("Tom", 18); $stu2 = new Student("Jerry", 19); $grade = new Grade("一年级", [$stu1, $stu2]); function objectToArray($d) { if (is_object($d)) { $d = get_object_vars($d); } if (is_array($d)) { return array_map(__FUNCTION__, $d); } else { return $d; } } $arr = objectToArray($grade); print_r($arr);
Die Ausgabe lautet:
Array ( [name] => 一年级 [students] => Array ( [0] => Array ( [name] => Tom [age] => 18 ) [1] => Array ( [name] => Jerry [age] => 19 ) ) )
Wie oben erwähnt, ist die rekursive Methode sehr nützlich für Daten in verschachtelten Arrays und Objektstrukturen.
Methode 4: Verwenden Sie json_decode() und json_encode()
Die letzte Methode besteht darin, die Funktionen json_decode() und json_encode() zu verwenden. Codieren Sie das Objekt in eine JSON-Formatzeichenfolge und decodieren Sie es mit json_decode() in ein Array. Dieser Ansatz funktioniert auch mit verschachtelten Arrays und Objekten. Zum Beispiel:
class Student{ public $name; public $age; public function __construct($name, $age){ $this->name = $name; $this->age = $age; } } class Grade{ public $name; public $students; public function __construct($name, $students){ $this->name = $name; $this->students = $students; } } $stu1 = new Student("Tom", 18); $stu2 = new Student("Jerry", 19); $grade = new Grade("一年级", [$stu1, $stu2]); $json = json_encode($grade); $arr = json_decode($json, true); print_r($arr);
Die Ausgabe lautet:
Array ( [name] => 一年级 [students] => Array ( [0] => Array ( [name] => Tom [age] => 18 ) [1] => Array ( [name] => Jerry [age] => 19 ) ) )
Obwohl json_decode() und json_encode() PHP-Objekte problemlos in Arrays konvertieren können, können sie private Eigenschaften nicht in Arrays konvertieren.
In diesem Artikel werden vier verschiedene Methoden zum Konvertieren von Objekten in Arrays vorgestellt. In der tatsächlichen Entwicklung sollte die am besten geeignete Methode basierend auf der tatsächlichen Situation ausgewählt werden.
Das obige ist der detaillierte Inhalt vonSo konvertieren Sie ein Objekt in ein Array in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Der Artikel vergleicht Säure- und Basisdatenbankmodelle, wobei die Eigenschaften und angemessene Anwendungsfälle beschrieben werden. Säure priorisiert die Datenintegrität und -konsistenz, geeignet für finanzielle und E-Commerce-Anwendungen, während sich die Basis auf die Verfügbarkeit konzentriert und

In dem Artikel wird das Sicherung von PHP -Dateien -Uploads erläutert, um Schwachstellen wie die Code -Injektion zu verhindern. Es konzentriert sich auf die Dateitypvalidierung, den sicheren Speicher und die Fehlerbehandlung, um die Anwendungssicherheit zu verbessern.

In Artikel werden Best Practices für die Validierung der PHP-Eingabe erörtert, um die Sicherheit zu verbessern und sich auf Techniken wie die Verwendung integrierter Funktionen, den Whitelist-Ansatz und die serverseitige Validierung zu konzentrieren.

In dem Artikel werden Strategien zur Implementierung der API-Rate in PHP erörtert, einschließlich Algorithmen wie Token-Bucket und Leaky Bucket sowie Bibliotheken wie Symfony/Rate-Limiter. Es deckt auch die Überwachung, die dynamischen Einstellungsgeschwindigkeiten und die Hand ab

Der Artikel beschreibt die Vorteile der Verwendung von Password_hash und Passage_verify in PHP zum Sichern von Passwörtern. Das Hauptargument besteht

In dem Artikel werden OWASP Top 10 Schwachstellen in PHP- und Minderungsstrategien erörtert. Zu den wichtigsten Problemen gehören die Injektion, die kaputte Authentifizierung und XSS mit empfohlenen Tools zur Überwachung und Sicherung von PHP -Anwendungen.

In dem Artikel werden Strategien erörtert, um XSS-Angriffe in PHP zu verhindern, sich auf die Eingabe von Eingaben, die Ausgabecodierung und die Verwendung von Bibliotheken und Frameworks für Sicherheitsförderungen zu konzentrieren.

In dem Artikel wird die Verwendung von Schnittstellen und abstrakten Klassen in PHP erörtert und konzentriert sich darauf, wann sie jeweils verwendet werden sollen. Schnittstellen definieren einen Vertrag ohne Implementierung, der für nicht verwandte Klassen und multiple Vererbung geeignet ist. Abstrakte Klassen liefern eine gemeinsame Funktion


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft