Maison  >  Article  >  développement back-end  >  Comment convertir un objet en objet tableau en php

Comment convertir un objet en objet tableau en php

PHPz
PHPzoriginal
2023-04-19 09:20:28668parcourir

En PHP, nous avons souvent besoin de convertir entre des objets et des tableaux. Dans certains cas, nous pouvons avoir besoin de convertir un objet en objet tableau afin de pouvoir exploiter plus facilement les propriétés et les méthodes de cet objet. Dans cet article, nous expliquerons comment convertir un objet en objet tableau à l'aide de certaines fonctions intégrées à PHP.

1. Utiliser le transtypage pour convertir des objets

Le transtypage (conversion de type) en PHP est une méthode de conversion d'un type de données en un autre type de données. Par conséquent, nous pouvons utiliser le transtypage pour convertir un objet en objet tableau. Dans l'exemple suivant, nous définissons un objet avec des propriétés de nom, d'âge et de sexe, puis convertissons l'objet en objet tableau :

class Person {
    public $name;
    public $age;
    public $gender;
}

$person = new Person();
$person->name = '张三';
$person->age = 18;
$person->gender = '男';

$array = (array) $person;
print_r($array);

Résultat :

Array
(
    [name] => 张三
    [age] => 18
    [gender] => 男
)

Dans l'exemple ci-dessus, nous convertissons l'objet $person Cast en objet tableau $array en utilisant (array). En imprimant l'objet tableau, nous pouvons voir que $array contient avec succès les attributs et les valeurs de $person.

Veuillez noter que dans l'objet tableau converti à partir de l'objet, le nom de l'attribut est le nom de l'attribut objet et la valeur de l'attribut est la valeur de l'attribut objet. Cependant, cette méthode ne peut pas convertir les propriétés privées de l'objet en propriétés d'objet tableau. Si vous devez convertir une propriété privée en propriété d'objet tableau, utilisez une autre méthode de conversion.

2. Utilisez la fonction get_object_vars()

La fonction get_object_vars() en PHP peut être utilisée pour obtenir tous les attributs et valeurs d'attribut d'un objet, et renvoyer un tableau associatif composé de noms d'attribut et de valeurs d'attribut. Nous pouvons représenter le tableau de retour de cette fonction comme un objet tableau d'objets. Voici un exemple d'utilisation de la fonction get_object_vars() pour convertir un objet en objet tableau :

class Person {
    public $name;
    public $age;
    private $gender;
}

$person = new Person();
$person->name = '张三';
$person->age = 18;
$person->gender = '男';

$array = get_object_vars($person);
print_r($array);

Résultat de sortie :

Array
(
    [name] => 张三
    [age] => 18
)

Dans l'exemple ci-dessus, nous définissons un objet $person, qui a les propriétés publiques $name et $ age et la propriété privée $gender. Nous convertissons ensuite cet objet en un objet tableau $array en utilisant la fonction get_object_vars(). Veuillez noter que la fonction get_object_vars() renvoie uniquement les propriétés et valeurs publiques de l'objet, à l'exclusion de la propriété privée $gender.

3. Utilisez la fonction json_decode()

La fonction json_decode() en PHP peut être utilisée pour convertir une chaîne au format JSON en une variable ou un objet PHP. Lors de la conversion d'un objet, la fonction json_decode() renverra un objet stdClass, qui peut être converti en objet tableau à l'aide d'un transtypage. Voici un exemple d'utilisation de la fonction json_decode() pour convertir un objet en objet tableau :

class Person {
    public $name;
    public $age;
    private $gender;
}

$person = new Person();
$person->name = '张三';
$person->age = 18;
$person->gender = '男';

$jsonStr = json_encode($person);
$array = (array) json_decode($jsonStr);
print_r($array);

Résultat de sortie :

Array
(
    [name] => 张三
    [age] => 18
    [gender] => 男
)

Dans l'exemple ci-dessus, nous convertissons d'abord l'objet $person en une chaîne JSON via json_encode( ) fonction $jsonStr, puis convertissez-le en un objet stdClass via la fonction json_decode(). Enfin, nous utilisons le transtypage pour convertir l'objet stdClass en un objet tableau $array. Veuillez noter qu'en utilisant cette méthode, les propriétés privées de l'objet peuvent également être converties en propriétés d'objet tableau.

Conclusion

Plusieurs méthodes sont fournies en PHP pour convertir des objets en objets tableau. Nous pouvons choisir la méthode appropriée en fonction des besoins réels. Lors de l'utilisation de la méthode transtypage, l'objet doit être converti en objet tableau, mais les propriétés privées ne peuvent pas être converties en propriétés d'objet tableau. Lors de l'utilisation de la fonction get_object_vars(), seules les propriétés et valeurs publiques de l'objet peuvent être obtenues. Lorsque vous utilisez la fonction json_decode(), vous pouvez convertir les propriétés publiques et privées d'un objet en propriétés d'objet tableau.

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