Maison > développement back-end > tutoriel php > Comment convertir efficacement des objets PHP en tableaux ?

Comment convertir efficacement des objets PHP en tableaux ?

Linda Hamilton
Libérer: 2024-12-07 15:23:12
original
372 Les gens l'ont consulté

How to Effectively Convert PHP Objects into Arrays?

Comment convertir un objet en tableau

Tableaux unidimensionnels

Pour les tableaux unidimensionnels, vous pouvez utiliser soit le casting, soit les get_object_vars fonction.

Casting :

$array = (array) $object;
Copier après la connexion

get_object_vars :

$array = get_object_vars($object);
Copier après la connexion

Alors que les deux méthodes convertissent un objet en un tableau, ils présentent des différences subtiles. get_object_vars renvoie uniquement les propriétés accessibles au public, à moins qu'elles ne soient appelées dans la portée de l'objet. Cependant, la diffusion préserve tous les membres, y compris les membres privés et protégés.

Tableaux multidimensionnels

Pour les tableaux multidimensionnels, vous pouvez utiliser différentes approches.

Encodage et décodage JSON :

Si votre objet peut être encodé en JSON, vous pouvez utiliser PHP Fonctions JSON natives :

$array = json_decode(json_encode($object), true);
Copier après la connexion

Cette méthode n'inclut pas les membres privés et protégés et ne convient pas aux objets contenant des données non codables en JSON.

Fonction récursive :

La fonction suivante convertit de manière récursive un objet en tableau, y compris les membres privés et protégés :

function objectToArray($object) {
    if(!is_object($object) && !is_array($object))
        return $object;

    return array_map('objectToArray', (array) $object);
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal