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) 
}
QCM Javascript

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *