Maison >développement back-end >Problème PHP >Comment convertir un tableau en objet en php

Comment convertir un tableau en objet en php

PHPz
PHPzoriginal
2023-04-19 10:09:414453parcourir

En programmation PHP, vous devez parfois convertir un tableau en objet, car les objets sont plus pratiques pour les opérations et le stockage des données. Dans cet article, nous allons explorer comment convertir un tableau en objet et comment effectuer une conversion entre les deux.

Convertir un tableau en objet

En PHP, il existe de nombreuses façons de convertir un tableau en objet, nous présenterons ces méthodes une par une ci-dessous.

Méthode 1 : Forcer le tableau en objet

En PHP, vous pouvez utiliser la syntaxe suivante pour convertir un tableau en objet.

$obj = (object) $array;

Dans cette instruction, nous convertissons $array en un objet et l'attribuons à $obj.

Il convient de noter que cette méthode attribue uniquement les valeurs du tableau aux propriétés de l'objet et ne peut effectuer aucune opération sur l'objet.

Méthode 2 : utilisez la classe stdClass pour instancier l'objet

En PHP, vous pouvez utiliser la classe stdClass pour créer un nouvel objet vide, puis attribuer les valeurs du tableau aux propriétés de l'objet. Le code spécifique est le suivant.

$obj = new stdClass();
foreach($array as $key => $value){
    $obj->$key = $value;
}

Dans ce code, nous utilisons la fonction foreach() pour parcourir le tableau, puis utilisons $obj->$key pour accéder aux propriétés de l'objet et les attribuer aux valeurs du tableau.

Méthode 3 : Utiliser la fonction json_decode()

En PHP, on peut également utiliser la fonction json_decode() pour convertir le tableau en objet. Le code spécifique est le suivant.

$jsonStr = json_encode($array);
$obj = json_decode($jsonStr);

Dans ce code, nous utilisons la fonction json_encode() pour convertir le tableau en chaîne json, puis utilisons la fonction json_decode() pour convertir la chaîne json en objet.

Il convient de noter que cette méthode n'est applicable que lorsque les valeurs du tableau sont toutes de types de base et ne s'applique pas aux tableaux associatifs ou aux tableaux imbriqués.

Convertir des objets en tableaux

Lorsque nous devons convertir des objets en tableaux, PHP propose deux méthodes : (1) utiliser la fonction get_object_vars() ; (2) utiliser le transtypage.

Méthode 1 : Utiliser la fonction get_object_vars()

En PHP, nous pouvons utiliser la fonction get_object_vars() pour obtenir tous les attributs et valeurs d'un objet et les convertir en tableau. Le code spécifique est le suivant.

$arr = get_object_vars($obj);

Dans ce code, $obj est un objet et $arr est un tableau qui contient toutes les propriétés et valeurs ​​​​dans $obj.

Méthode 2 : Utiliser le transtypage de type

En PHP, nous pouvons directement utiliser le transtypage de type pour convertir des objets en tableaux. Le code spécifique est le suivant.

$arr = (array) $obj;

Dans ce code, nous utilisons (array) pour forcer la conversion de $obj en tableau.

Il est à noter que cette méthode a une limitation, elle ne peut convertir que les propriétés publiques de l'objet en valeurs du tableau. Ni les propriétés privées ni les propriétés protégées ne peuvent être converties de cette manière.

Conclusion

En programmation PHP, la conversion de tableaux en objets et la conversion d'objets en tableaux sont des opérations courantes. Dans cet article, nous avons présenté comment utiliser la conversion de type, la fonction get_object_vars() et la fonction json_decode() pour réaliser ces opérations. Dans le même temps, il est également rappelé aux lecteurs le champ d’application applicable de la méthode, ainsi que les limites et précautions de la méthode. J'espère que cet article pourra être utile aux programmeurs PHP.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn