In PHP sind Object und Array zwei verschiedene Datentypen. Manchmal müssen wir jedoch ein Objekt in ein Array konvertieren, z. B. die Eigenschaften und Methoden eines Klasseninstanziierungsobjekts zur einfacheren Verwendung in ein Array konvertieren.
In PHP gibt es mehrere Möglichkeiten, eine Objekt-in-Array-Konvertierung zu erreichen.
Dies ist die einfachste und einfachste Methode. Die Funktion get_object_vars() kann ein Array aller Attribute und Attributwerte in einem Objekt zurückgeben.
Zum Beispiel:
class MyClass { public $a = 1; protected $b = 2; private $c = 3; public function test(){ return "hello world!"; } } $obj = new MyClass(); $array = get_object_vars($obj); print_r($array);
Ausgabe:
Array ( [a] => 1 )
Es ist ersichtlich, dass die Funktion get_object_vars() nur den Wert des öffentlichen Attributs $a erhält, für die geschützten und privaten Attribute $b und $c jedoch deren Werte werden nicht erhalten.
In PHP können Sie Typumwandlung verwenden, um ein Objekt in ein Array umzuwandeln. Bei der erzwungenen Typkonvertierung wird das Schlüsselwort „(array)“ verwendet.
Zum Beispiel:
class MyClass { public $a = 1; protected $b = 2; private $c = 3; public function test(){ return "hello world!"; } } $obj = new MyClass(); $array = (array) $obj; print_r($array);
Ausgabe:
Array ( [a] => 1 [*b] => 2 MyClassprivatec] => 3 )
Dieses Array enthält alle Eigenschaften und Eigenschaftswerte, aber geschützten und privaten Eigenschaften wird ein * oder Klassenname vorangestellt, um sie von öffentlichen Eigenschaften zu unterscheiden.
Es ist zu beachten, dass diese Methode nicht die Methoden im Objekt auflistet, sondern nur die Eigenschaften des Objekts.
In PHP können Sie die Funktion json_decode() verwenden, um eine JSON-Formatzeichenfolge in ein Array oder Objekt zu konvertieren. Daher können die Eigenschaften eines Objekts im JSON-Format codiert und dann in ein Array decodiert werden.
Zum Beispiel:
class MyClass { public $a = 1; protected $b = 2; private $c = 3; public function test(){ return "hello world!"; } } $obj = new MyClass(); $json = json_encode($obj); $array = json_decode($json, true); print_r($array);
Ausgabe:
Array ( [a] => 1 [b] => 2 [MyClassprivatec] => 3 )
Es ist zu beachten, dass diese Methode auch geschützte und private Eigenschaften in Arrays umwandelt, ihnen jedoch der Klassenname vorangestellt wird.
Die oben genannten Methoden sind mehrere Methoden zum Konvertieren von Objekten in Arrays, einschließlich der Verwendung der Funktion get_object_vars(), der erzwungenen Typkonvertierung und der Funktion json_decode(). Am häufigsten werden die Funktionen cast und json_decode() verwendet.
Es ist zu beachten, dass bei Verwendung der Funktion cast und json_decode() den Werten geschützter und privater Attribute möglicherweise Klassennamen oder Symbole wie * vorangestellt werden, die je nach bestimmten Umständen behandelt werden müssen.
Das obige ist der detaillierte Inhalt vonSo konvertieren Sie Objekte in PHP in Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!