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

Comment convertir un objet en tableau en php

PHPz
PHPzoriginal
2023-04-26 14:26:062074parcourir

PHP est un langage de programmation très utile doté de puissantes fonctionnalités orientées objet. En PHP, on peut facilement convertir des objets en tableaux. Cet article présentera diverses méthodes de conversion d'objets en tableaux en PHP.

1. Utilisez la fonction get_object_vars()

get_object_vars() est une fonction intégrée de PHP qui est utilisée pour obtenir toutes les propriétés et valeurs d'un objet et renvoyer un tableau. Le format de syntaxe de cette fonction est le suivant :

array get_object_vars ( object $object )

où, $object représente l'objet à convertir.

L'exemple de code suivant montre comment convertir un objet en tableau :

class MyClass {
   public $name = '张三';
   protected $age = 18;
   private $sex = '男';
}

$myObj = new MyClass();

$arr = get_object_vars($myObj);

print_r($arr);

Ici, un objet $myObj est créé via la classe MyClass, et la fonction get_object_vars() est utilisée pour le convertir en tableau $arr, et enfin, la sortie est envoyée au tableau de console.

Le résultat est le suivant :

Array
(
    [name] => 张三
)

Vous pouvez voir qu'en raison des différents droits d'accès des attributs $age et $sex, seul $name est converti en tableau.

2. Utiliser le casting de type (conversion de type)

En plus d'utiliser les fonctions intégrées, nous pouvons également utiliser la syntaxe de conversion de type en PHP pour convertir des objets en tableaux. La syntaxe de conversion de type implique de faire précéder la variable du nom du type de données à convertir, tel que (tableau), (chaîne), (int), etc.

Dans l'exemple de code suivant, nous utilisons (array) pour convertir l'objet en tableau :

class MyClass {
   public $name = '张三';
   protected $age = 18;
   private $sex = '男';
}

$myObj = new MyClass();
$arr = (array) $myObj;
print_r($arr);

La différence ici par rapport à l'exemple précédent est que lors de la conversion de l'objet $myObj en tableau, nous utilisons le type (array) syntaxe de conversion.

L'exécution du code ci-dessus vous donnera le même résultat que le tableau présenté précédemment.

3. Utilisez la fonction json_decode()

En plus d'utiliser get_object_vars() et le transtypage, nous pouvons également utiliser la fonction json_decode() pour convertir des objets en tableaux ou tableaux associatifs. La fonction

json_decode() convertit la chaîne JSON en tableau PHP ou tableau associatif, donc si nous sérialisons l'objet en chaîne JSON puis le désérialisons à l'aide de la fonction json_decode(), nous pouvons convertir l'objet en tableau ou tableau associatif.

L'exemple de code suivant illustre ce processus :

class MyClass {
   public $name = '张三';
   protected $age = 18;
   private $sex = '男';
}

$myObj = new MyClass();

$jsonString = json_encode($myObj);

$arr = json_decode($jsonString, true);

print_r($arr);

Ici, nous créons un objet $myObj via la classe MyClass et le sérialisons en une chaîne JSON $jsonString à l'aide de la fonction json_encode(). Ensuite, nous utilisons la fonction json_decode() pour décoder la chaîne en un tableau associatif $arr.

Dans la fonction json_decode(), le deuxième paramètre est défini sur true, ce qui signifie qu'après décodage, un tableau associatif est renvoyé à la place d'un objet. Si ce paramètre n'est pas défini, un objet est renvoyé à la place d'un tableau.

Exécutez le code et vous obtiendrez le même résultat que l'exemple précédent.

Résumé

En PHP, nous pouvons convertir des objets en tableaux de plusieurs manières. La fonction get_object_vars() peut facilement convertir toutes les propriétés d'un objet et leurs valeurs en tableaux, tandis que les fonctions de transtypage et json_decode() peuvent sérialiser l'objet en chaîne, puis le convertir en tableau via la fonction de conversion. Quelle que soit la méthode utilisée, tant que vous choisissez la méthode adaptée au scénario actuel, vous pouvez facilement convertir l'objet en tableau pour mieux répondre aux besoins de l'entreprise.

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