Comment convertir efficacement un objet au format tableau
Dans PHP, vous pouvez rencontrer des situations où un objet doit être converti au format tableau. Cet article examine diverses techniques pour réaliser cette conversion.
Tableaux unidimensionnels
Deux méthodes sont souvent utilisées pour convertir des tableaux unidimensionnels :
-
Casting de type explicite : Le simple fait de convertir l'objet en un tableau à l'aide de (array) préserve toutes les propriétés de l'objet, y compris privées et protégées. membres.
$array = (array) $object;
-
get_object_vars(): Cette fonction récupère un tableau contenant uniquement des propriétés accessibles au public. Dans la portée de l'objet, il inclut toutes les propriétés.
$array = get_object_vars($object);
Tableaux multidimensionnels
La conversion de tableaux multidimensionnels nécessite une approche légèrement différente.
-
Encodage et décodage JSON : Cette méthode est compatible avec PHP 5.2 ou version ultérieure. Le codage JSON convertit l'objet en chaîne JSON, qui est ensuite décodée en un tableau associatif. Cependant, cette approche ne gère pas les membres ou objets privés et protégés contenant des données non codables en JSON.
$array = json_decode(json_encode($object), true);
-
Fonction personnalisée : La fonction suivante, basée sur une version modifiée trouvée ailleurs, fournit une option plus complète :
function objectToArray($object) {
if (is_object($object) || is_array($object)) {
return array_map('objectToArray', (array) $object);
}
return $object;
}
Cette fonction convertit de manière récursive toutes les propriétés de l'objet en un format de tableau, quels que soient les modificateurs d'accès.
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