Maison >développement back-end >tutoriel php >Comment convertir de manière fiable un objet PHP stdClass en tableau ?

Comment convertir de manière fiable un objet PHP stdClass en tableau ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-16 00:13:02493parcourir

How to Reliably Convert a PHP stdClass Object to an Array?

php stdClass en tableau

Lorsque vous travaillez avec PHP, vous pouvez rencontrer le besoin de convertir un objet stdClass en tableau. Cette conversion peut être délicate et différentes méthodes peuvent entraîner un comportement inattendu.

Une approche courante consiste à convertir l'objet en tableau en utilisant (array) $booking. Cependant, cette méthode peut générer un tableau vide si l'objet contient des objets ou des tableaux imbriqués.

Une autre option consiste à utiliser json_decode($booking, true). Cette méthode convertira l'objet en tableau, mais elle peut également aboutir à un tableau vide si l'objet contient des objets ou des tableaux imbriqués.

Une méthode plus fiable pour convertir un objet stdClass en tableau consiste à utiliser une fonction récursive qui parcourt l'objet et ses enfants, convertissant chaque élément en sa représentation matricielle correspondante. Voici un exemple d'une telle fonction :

public function objectToArray($d) {
        if (is_object($d)) {
            // Gets the properties of the given object
            // with get_object_vars function
            $d = get_object_vars($d);
        }

        if (is_array($d)) {
            /*
             * Return array converted to object
             * Using __FUNCTION__ (Magic constant)
             * for recursive call
             */
            return array_map(__FUNCTION__, $d);
        }
        else {
            // Return array
            return $d;
        }
    }

Cette fonction convertira un objet stdClass en un tableau, en préservant la structure et les valeurs de l'objet d'origine. Il peut également être utilisé pour convertir des tableaux en objets si vous le souhaitez.

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