Convertir un objet PHP en tableau associatif

Subodh Poudel 30 janvier 2023
  1. Utilisez le mot-clé array pour transtyper l’objet StdClass pour le convertir en un tableau associatif en PHP
  2. Utilisez l’objet StdClass à l’intérieur d’une classe définie par l’utilisateur pour convertir l’objet en un tableau associatif en PHP
  3. Utilisez les fonctions json_encode() et json_decode() pour convertir l’objet en un tableau associatif en PHP
Convertir un objet PHP en tableau associatif

Nous allons introduire une méthode pour convertir l’objet PHP en un tableau associatif transtypant les objets de StdClass à l’aide du mot-clé array. Nous utiliserons la fonction var_dump() pour afficher le tableau associatif.

La deuxième approche montre une autre méthode pour convertir l’objet PHP en un tableau associatif créant une StdClass dans le constructeur d’une classe définie par l’utilisateur. Nous allons convertir l’objet en tableau associatif comme dans la première méthode en utilisant le mot-clé array. Cette méthode suit l’approche orientée objet.

Nous introduirons également une autre méthode pour convertir l’objet en tableau associatif en PHP à l’aide des fonctions json_encode() et json_decode(). Nous utiliserons la StdClass pour créer l’objet et les propriétés dynamiques.

Utilisez le mot-clé array pour transtyper l’objet StdClass pour le convertir en un tableau associatif en PHP

Nous pouvons créer la classe vide StdClass pour créer un objet en PHP et utiliser l’objet pour créer des propriétés. L’objet de la classe peut accéder directement aux propriétés. Il peut également créer des propriétés dynamiques pour la classe. Nous pouvons utiliser l’objet array pour transtyper l’objet dans un tableau. La fonction var_dump() vide les informations sur le type et les valeurs du tableau.

Par exemple, créez un objet $object de la StdClass en utilisant l’opérateur new. Créez deux propriétés à l’aide du $object nommé car1 et car2. Attribuez les propriétés avec les valeurs porsche et bugatti. Utilisez le mot-clé array pour transtyper la variable $object. Enveloppez le mot-clé array avec des parenthèses avant la variable $object et videz la valeur à l’aide de la fonction var_dump(). L’exemple ci-dessous convertit les objets en un tableau associatif, comme indiqué dans la section de sortie. Il affiche les paires clé et valeur pour chaque élément du tableau.

Exemple de code :

#php 7.x 
<?php
$object = new StdClass;
$object->car1 = "porsche";
$object->car2 = "bugatti";
var_dump( (array) $object );
?>

Production:

array(2) { ["car1"]=> string(7) "porsche" ["car2"]=> string(7) "bugatti" }

Utilisez l’objet StdClass à l’intérieur d’une classe définie par l’utilisateur pour convertir l’objet en un tableau associatif en PHP

Nous pouvons créer une instance de la StdClass dans le constructeur de la classe et utiliser le mot-clé array pour convertir l’objet des classes en un tableau associatif. Nous pouvons créer une classe et en définir certaines propriétés. Le constructeur de la classe initialise les propriétés de la classe à des valeurs spécifiques. On peut créer un objet de la StdClass et lui attribuer une des propriétés de la classe. L’opérateur new, avec la classe, invoque le constructeur. On peut utiliser le mot-clé array juste avant l’invocation pour convertir l’objet de la classe en un tableau associatif.

Par exemple, créez une classe Motorcycle. Créez trois propriétés de classe avec le modificateur d’accès private comme $name, $color et $type. Créez un constructeur de la classe et à l’intérieur du constructeur initialisez les valeurs des propriétés. Écrivez Husky pour le name, white pour $color et créez un objet de la StdClass pour $type. Utilisez le mot-clé $this pour initialiser les propriétés. En dehors de la classe, invoquez la classe Motorcycle et utilisez le mot-clé array pour transtyper avant d’appeler. Utilisez la fonction var_dump() pour vider les informations sur le tableau transtypé.

Exemple de code :

#php 7.x 
class Motorcycle{
    private $name;
    private $color;
    private $type;
    public function __construct(){
        $this->name = "Husky";
        $this->color = "white";
        $this->type = new StdClass;
    }
}
var_dump( (array) new Motorcycle );

Production:

array(3) { ["Motorcyclename"]=> string(5) "Husky" ["Motorcyclecolor"]=> string(5) "white" ["Motorcycletype"]=> object(stdClass)#2 (0) { } }

Utilisez les fonctions json_encode() et json_decode() pour convertir l’objet en un tableau associatif en PHP

La fonction json_encode() encode une valeur vers l’objet JSON et la fonction json_decode() convertit l’objet JSON en objet PHP. La valeur booléenne, le deuxième paramètre de la fonction json_decode(), indique ce que l’objet JSON doit être converti. La valeur true convertira l’objet JSON en un tableau associatif, tandis que la valeur false le convertira en un objet PHP.

Par exemple, créez un objet de la StdClass et affectez-le à la variable $object. Nommez deux valeurs de la propriété de l’objet comme Mustang et Manang et stockez-les dans les variables place1 et place2. Utilisez la fonction json_encode() sur la variable $object et stockez la valeur dans la variable $json. Ensuite, utilisez la fonction json_decode() sur la variable $json et utilisez la valeur booléenne true comme deuxième paramètre. Stockez la valeur dans la variable $array. Videz la variable à l’aide de la fonction var_dump().

Dans l’exemple ci-dessous, la variable $object contient l’objet StdClass. La fonction json_ecode() convertit l’objet en chaîne JSON. La fonction json_decode() convertit la chaîne JSON en tableau associatif.

Exemple de code :

#php 7.x 
<?php
$object = new StdClass;
$object->place1 = "Mustang";
$object->place2 = "Manang";
$json= json_encode($object);
$array = json_decode($json, true);
var_dump($array);
?>

Production:

array(2) { ["place1"]=> string(7) "Mustang" ["place2"]=> string(6) "Manang" }
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

Article connexe - PHP Object