Maison >développement back-end >tutoriel php >Comment convertir rapidement un objet PHP en un tableau associatif ?

Comment convertir rapidement un objet PHP en un tableau associatif ?

DDD
DDDoriginal
2024-12-21 19:07:10509parcourir

How to Quickly Convert a PHP Object into an Associative Array?

Comment convertir rapidement un objet PHP en un tableau associatif

Lors de l'intégration d'API qui fonctionnent avec des données basées sur des objets, le besoin s'en fait souvent sentir pour convertir ces objets en tableaux pour les aligner sur le code existant à l'aide de tableaux. Voici une solution concise et simple pour effectuer cette conversion :

Typecast l'objet :

Pour convertir un objet en tableau associatif, vous pouvez simplement le typer comme suit :

$array = (array) $yourObject;

Cette méthode de transtypage est une approche directe et efficace. Cependant, il est important de noter qu'il n'effectue qu'une conversion superficielle.

Accessibilité des propriétés dans les tableaux Cast :

Lors du transtypage d'un objet dans un tableau, diverses règles s'appliquent concernant accessibilité des propriétés :

  • Les propriétés publiques sont directement accessibles dans le array.
  • Les propriétés privées ont 'foo' ajouté au nom de la variable.
  • Les propriétés protégées ont '*foo' ajouté au nom de la variable. .

Propriété entière Conversion :

Les propriétés entières sont inaccessibles et n'apparaîtront pas dans le tableau converti.

Exemple : Conversion d'un objet simple :

$object = new StdClass;
$object->foo = 1;
$object->bar = 2;

var_dump( (array) $object );

Sortie :

array(2) {
  'foo' => int(1)
  'bar' => int(2)
}

Exemple : Conversion d'un objet complexe avec des propriétés privées et protégées :

class Foo {
    private $foo;
    protected $bar;
    public $baz;

    public function __construct() {
        $this->foo = 1;
        $this->bar = 2;
        $this->baz = new StdClass;
    }
}

var_dump( (array) new Foo );

Sortie :

array(3) {
  'Foofoo' => int(1)
  '*bar' => int(2)
  'baz' => class stdClass#2 (0) {}
}

Comme vous pouvez le constater, les propriétés privées et protégées sont présentes dans le tableau converti avec les préfixes ajoutés spécifiés.

Casting profond et non public Propriétés :

Notez que cette méthode de transtypage n'effectue pas de conversion en profondeur. Pour accéder aux attributs non publics, vous devrez peut-être appliquer explicitement les octets nuls, comme expliqué dans la documentation officielle PHP.

Pour des informations plus détaillées, reportez-vous aux ressources liées :

  • Classe PHP intégrée stdClass : https://www.php.net/manual/en/class.stdclass.php
  • Blog de conversion rapide d'un objet en tableau Article : https://dereuromark.de/2011/02/03/fast-php-object-to-array-conversion/

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