Convertir un objet en Array en PHP
Un objet est une instance d’une classe, tandis qu’un tableau est une structure de données qui stocke un ou plusieurs types similaires, un tableau associatif est un type de tableau qui stocke les valeurs d’élément en association avec les valeurs de clé.
Nous pouvons convertir un objet en un tableau en utilisant deux méthodes:
- Utilisation de la méthode json_encode() et json_decode().
- Conversions de type forcées (casting).
Utilisation de la méthode json_encode() et json_decode()
Initialement, la fonction json_encode() renvoie une chaîne JSON pour une valeur donnée. La fonction json_decode() la transforme en un tableau PHP.
Exemple:
<?php class Person { public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } $obj = new Person("Emily", 20); echo "Avant la conversion:".'</br>'; var_dump($obj); $tab = json_decode(json_encode($obj), true); echo "Après la conversion:".'</br>'; var_dump($tab); ?>
La sortie :
Avant la conversion: object(person)#1 (2) { ["name"]=> string(5) "Emily" ["age"]=> int(20) } Après la conversion: array(2) { ["name"]=> string(5) "Emily" ["age"]=> int(20) }
Conversions de type forcées (casting)
Typecasting est l’approche qui consiste à utiliser une variable d’un type de données dans différents types. Il s’agit simplement d’une transformation de type.
<?php class Person { public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } $obj = new Person("Emily", 20); echo "Avant la conversion:".'</br>'; var_dump($obj); $tab =(array)$obj; echo "Après la conversion:".'</br>'; var_dump($tab); ?>
La sortie :
Avant la conversion: object(person)#1 (2) { ["name"]=> string(5) "Emily" ["age"]=> int(20) } Après la conversion: array(2) { ["name"]=> string(5) "Emily" ["age"]=> int(20) }