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

php convertir un objet en tableau

WBOY
Libérer: 2023-05-23 14:01:16
original
567 Les gens l'ont consulté

En PHP, les objets et les tableaux sont deux types de données de base. Les objets constituent une partie importante des langages de programmation orientée objet (POO), qui nous permettent de combiner des données et des fonctions pour les rendre plus pratiques à utiliser. En revanche, un tableau est une collection non ordonnée pouvant contenir de nombreux types de données différents. Dans certains cas, nous pouvons avoir besoin de convertir des objets en tableaux pour effectuer certaines opérations ou faciliter la sortie, cet article se concentrera donc sur la façon de convertir des objets en tableaux en PHP.

De manière générale, PHP propose deux façons de convertir des objets en tableaux, à savoir en utilisant cast et en utilisant les fonctions intégrées de PHP. Les éléments suivants sont expliqués séparément :

1. Utiliser la conversion de type forcée

La conversion de type forcée en PHP est très simple. Il vous suffit de mettre la valeur à forcer dans la cible. données à convertir. Juste avant le type. Il en va de même pour la conversion d'objets en tableaux. Voici un exemple de code pour convertir un objet en tableau :

$obj = new stdClass();
$obj->foo = 'bar';
$obj->hello = 'world';

$arr = (array) $obj;

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

Résultat de sortie :

Array
(
    [foo] => bar
    [hello] => world
)
Copier après la connexion
Copier après la connexion

Comme le montre le code ci-dessus, en convertissant un objet en un tableau, nous pouvons facilement convertir les propriétés d'un objet au format de paire clé-valeur d'un tableau.

2. Utilisez les fonctions intégrées de PHP

Par rapport à la conversion de type forcée, l'utilisation des fonctions intégrées de PHP pour convertir des objets en tableaux peut être plus pratique dans certains cas. PHP fournit une fonction get_object_vars(), qui est utilisée pour obtenir toutes les variables membres non statiques de l'objet spécifié. On peut directement attribuer la valeur renvoyée par cette fonction au tableau pour convertir l'objet en tableau. Voici un exemple de code qui utilise cette méthode pour convertir un objet en tableau : get_object_vars()函数,该函数用于获取指定对象的所有非静态成员变量。我们可以将该函数返回的值直接赋值给数组,就可以将对象转换为数组。下面是使用该方法将对象转换为数组的示例代码:

class Person {
    public $name;
    public $age;
    private $gender;
    
    public function __construct($name, $age, $gender) {
        $this->name = $name;
        $this->age = $age;
        $this->gender = $gender;
    }
}

$obj = new Person('Alice', 25, 'female');
$arr = get_object_vars($obj);

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

输出结果:

Array
(
    [name] => Alice
    [age] => 25
)
Copier après la connexion

从上面的代码可以看出,使用get_object_vars()函数将对象转换为数组,只会返回对象的公共属性,而私有属性和保护属性不会被返回。

需要注意的是,当对象中存在未定义属性时,使用get_object_vars()函数将会抛出一个传统警告。因此,在使用该方法时,应该先检查对象是否定义了该属性。或者,也可以使用json_decode(json_encode($object), true)方法,该方法在内部使用了get_object_vars()

$obj = new stdClass();
$obj->foo = 'bar';
$obj->hello = 'world';

$arr = json_decode(json_encode($obj), true);

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

Résultat de sortie :

Array
(
    [foo] => bar
    [hello] => world
)
Copier après la connexion
Copier après la connexion
Comme le montre le code ci-dessus, utilisez get_object_vars() La fonction convertit l'objet en tableau et renvoie uniquement les propriétés publiques de l'objet, tandis que les propriétés privées et les propriétés protégées ne seront pas renvoyées.

Il convient de noter que lorsqu'il y a des propriétés non définies dans l'objet, l'utilisation de la fonction get_object_vars() lancera un avertissement traditionnel. Par conséquent, lorsque vous utilisez cette méthode, vous devez d’abord vérifier si l’objet a cette propriété définie. Alternativement, vous pouvez également utiliser la méthode json_decode(json_encode($object), true), qui utilise la fonction get_object_vars() en interne et est plus efficace lors de la gestion d'attributs non définis. Être rigoureux. Voici un exemple de code qui utilise cette méthode pour convertir un objet en tableau : #🎜🎜#rrreee#🎜🎜#Résultat de sortie : #🎜🎜#rrreee#🎜🎜#Pour résumer, vous pouvez utiliser la coercition pour convertir un Conversion d'un objet PHP en un tableau de type, vous pouvez également utiliser les fonctions intégrées de PHP, elles peuvent facilement convertir les propriétés de l'objet au format de paires clé-valeur de tableau. Quelle que soit la méthode utilisée, vous devez vérifier si les propriétés définies sont des propriétés publiques et s'il existe des contrôles pour les propriétés non définies. #🎜🎜#

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