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

Comment convertir obj en tableau en php

PHPz
Libérer: 2023-04-27 14:34:54
original
742 Les gens l'ont consulté

Dans le développement PHP, il est parfois nécessaire de convertir un objet en tableau pour faciliter le transfert et le traitement des données. Cet article explique comment convertir des objets en tableaux en PHP.

1. Utilisez la fonction get_object_vars pour la conversion

La fonction intégrée de PHP get_object_vars peut obtenir la représentation matricielle de tous les attributs visibles dans l'objet (la clé est le nom de l'attribut et la valeur est la valeur de l'attribut). Nous pouvons utiliser le tableau renvoyé directement comme tableau requis.

Exemple de code :

class Car {
    public $brand = 'Audi';
    public $model = 'A6';
    private $price = 80000;
    
    public function __construct()
    {
        # code...
    }
}

$car = new Car();
$arr = get_object_vars($car);
print_r($arr);
Copier après la connexion

Résultat de l'exécution :

Array
(
    [brand] => Audi
    [model] => A6
)
Copier après la connexion
Copier après la connexion

On peut voir que puisque l'attribut $price est privé, il n'apparaîtra pas dans le milieu du tableau renvoyé.

2. Utilisez la fonction json_decode pour la conversion

Nous pouvons utiliser la fonction intégrée PHP json_decode pour convertir l'objet en chaîne au format JSON, puis le convertir en un tableau.

Exemple de code :

class Car {
    public $brand = 'Audi';
    public $model = 'A6';
    private $price = 80000;
    
    public function __construct()
    {
        # code...
    }
}

$car = new Car();
$jsonStr = json_encode($car);
$arr = json_decode($jsonStr, true);
print_r($arr);
Copier après la connexion

Résultat de l'exécution :

Array
(
    [brand] => Audi
    [model] => A6
)
Copier après la connexion
Copier après la connexion

De même, puisque l'attribut $price est privé, il n'apparaîtra pas après la conversion dans le tableau.

3. Utilisez la conversion de type pour la conversion

En PHP, en plus d'utiliser la fonction get_object_vars et la fonction json_decode pour convertir des objets en tableaux, vous pouvez également utiliser la conversion de type cast. Transformation. Nous pouvons forcer l'objet à entrer dans un type tableau. Les clés du tableau renvoyé sont les noms de propriété et les valeurs sont les valeurs de propriété.

Exemple de code :

class Car {
    public $brand = 'Audi';
    public $model = 'A6';
    private $price = 80000;
    
    public function __construct()
    {
        # code...
    }
}

$car = new Car();
$arr = (array) $car;
print_r($arr);
Copier après la connexion

Résultat de l'exécution :

Array
(
    [brand] => Audi
    [model] => A6
    [*price] => 80000
)
Copier après la connexion

Vous pouvez voir que, contrairement aux résultats de conversion de la fonction get_object_vars et de la fonction json_decode, le type forcé En plus des attributs publics, le tableau converti comprendra également des attributs privés, et les marqueurs commençant par * représentent les attributs privés.

Il est à noter que s'il existe une méthode __toString dans l'objet, lorsque l'objet est converti en tableau, la valeur de retour de la méthode __toString sera utilisée comme premier élément du tableau ( la clé est 0 et la valeur est la valeur de retour).

4. Utiliser la réflexion pour la transformation

Le mécanisme de réflexion de PHP peut analyser et appeler des classes, des objets et des méthodes. La réflexion fournit la fonction d'obtenir les propriétés et les méthodes des objets. , nous pouvons obtenir les propriétés et le niveau d'accès (public, privé ou protégé) de l'objet.

Exemple de code :

class Car {
    public $brand = 'Audi';
    public $model = 'A6';
    private $price = 80000;
    
    public function __construct()
    {
        # code...
    }
}

$car = new Car();
$reflection = new ReflectionObject($car);
$arr = [];

foreach ($reflection->getProperties() as $property) {
    $property->setAccessible(true);
    $arr[$property->getName()] = $property->getValue($car);
}

print_r($arr);
Copier après la connexion

Résultat de l'exécution :

Array
(
    [brand] => Audi
    [model] => A6
    [price] => 80000
)
Copier après la connexion

On peut voir que lors de l'obtention des propriétés de l'objet par réflexion, le niveau d'accès (public, privé ou protégé), en même temps, les noms d'attributs et les valeurs d'attribut obtenus sont inclus dans le tableau.

Pour résumer, cet article présente diverses méthodes de conversion d'objets en tableaux en PHP. Dans le développement réel, la méthode à choisir doit être basée sur les exigences et la situation réelle du code.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal