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

Comment convertir un objet en tableau en php

PHPz
Libérer: 2023-04-24 16:03:15
original
647 Les gens l'ont consulté

PHP est un langage de programmation côté serveur populaire qui prend en charge les bases de données relationnelles, est utilisé pour gérer les polices, utiliser HTML et de nombreuses autres fonctions. En PHP, Object est utilisé comme type de données. L'objet est fréquemment utilisé dans différentes bibliothèques et frameworks d'extension PHP. Cependant, il est parfois nécessaire de convertir un objet en tableau pour un meilleur traitement des données. Dans cet article, nous expliquerons comment convertir un objet en tableau en PHP.

Type d'objet en PHP

En PHP, le type d'objet est appelé type de support, qui est le type de données de niveau supérieur et le plus basique en PHP. Son protocole de type peut prendre en charge les instances de classe et les objets non-classes.

Par exemple :

class Fruits
{
    public $apple_color = 'red';
    public $orange_color = 'orange';
    function __construct($apple_color, $orange_color) {
        $this->apple_color = $apple_color;
        $this->orange_color = $orange_color;
    }
}

$fruit_instance = new Fruits('green', 'yellow');
$fruit_object = (object)array('apple' => 'red', 'orange' => 'orange', 'furniture' => 'blue');
Copier après la connexion

Dans le code ci-dessus, Fruits est une classe, et nous en créons une instance $fruit_instance et un objet $fruit_object. Ils appartiennent tous deux au type de données Objet, mais <code>$fruit_instance est une "instance de classe", tandis que $fruit_object est un "objet non-classe". Fruits 是一个类,我们创建了它的一个实例 $fruit_instance 和一个对象 $fruit_object。 它们同属于 Object 类型的数据,但是 $fruit_instance 是一个“类的实例”,而 $fruit_object 是一个“非类的对象”。

在 PHP 中,如何将 Object 转换成数组呢?以下列举了几种可以使用的方法:

方法一:使用类型转换

PHP 中的强制类型转换可以将任何类型的对象(Object)转换成数组。 例如:

$array = (array)$fruit_object;
print_r($array);
Copier après la connexion

当我们运行以上代码时,输出的结果:

Array
(
    [apple] => red
    [orange] => orange
    [furniture] => blue
)
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

但是,需要注意的是,当我们进行强制类型转换的时候,会将 Object 转换成一个数组,但是这并不是我们期望的结果,因为原始数据的信息会丢失,我们将不得不手动重新处理数据来保留原有的结构。

方法二:使用 get_object_vars 函数

PHP 中的 get_object_vars 函数可以用来获取参数中的 Object 对象的属性和属性值,返回的是一个数组。 例如:

$array = get_object_vars($fruit_object);
print_r($array);
Copier après la connexion

当我们运行以上代码时,输出的结果:

Array
(
    [apple] => red
    [orange] => orange
    [furniture] => blue
)
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

需要注意的是,get_object_vars 函数只能获取对象的属性,没有任何方法,但是我们可以通过一个类的成员函数来获取所有属性。

方法三:使用 json_decode 函数

PHP 中的 json_decode 函数也可以将 JSON 格式的字符串转成数组。 例如:

$json_str = json_encode($fruit_object);
$array = json_decode($json_str, true);
print_r($array);
Copier après la connexion

当我们运行以上代码时,输出的结果:

Array
(
    [apple] => red
    [orange] => orange
    [furniture] => blue
)
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

需要注意的是,json_decode

Comment convertir un objet en tableau en PHP ? Voici plusieurs méthodes qui peuvent être utilisées :

Méthode 1 : Utiliser la conversion de type

La conversion de type forcée en PHP peut convertir n'importe quel type d'objet (Objet) en tableau. Par exemple :

function object_to_array($object)
{
    if (is_object($object)) {
        // 获取对象的属性和属性值
        $array = get_object_vars($object);
    } elseif (is_array($object)) {
        foreach ($object as $key => $value) {
            $array[$key] = object_to_array($value);
        }
    } else {
        $array = $object;
    }
    return $array;
}

$array = object_to_array($fruit_object);
print_r($array);
Copier après la connexion
Lorsque nous exécutons le code ci-dessus, le résultat de sortie est :

Array
(
    [apple] => red
    [orange] => orange
    [furniture] => blue
)
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Cependant, il convient de noter que lorsque nous effectuons une conversion de type cast, l'objet sera converti en tableau, mais ce n'est pas ce que nous En conséquence, puisque les informations des données originales seront perdues, nous devrons retraiter manuellement les données pour préserver la structure originale.

Méthode 2 : Utiliser la fonction get_object_vars

La fonction get_object_vars en PHP peut être utilisée pour obtenir les attributs et les valeurs d'attribut de l'objet Object dans le paramètre, et renvoie un tableau. Par exemple : 🎜rrreee🎜Lorsque nous exécutons le code ci-dessus, le résultat de sortie est : 🎜rrreee🎜Il convient de noter que la fonction get_object_vars ne peut obtenir que les attributs de l'objet, il n'y a pas de méthode, mais nous pouvons transmettre une fonction membre de classe pour obtenir toutes les propriétés. 🎜🎜Méthode 3 : Utiliser la fonction json_decode 🎜🎜La fonction json_decode de PHP peut également convertir des chaînes au format JSON en tableaux. Par exemple : 🎜rrreee🎜Lorsque nous exécutons le code ci-dessus, le résultat de sortie est : 🎜rrreee🎜Il convient de noter que la fonction json_decode prend également en charge le traitement des données binaires. 🎜🎜Méthode 4 : Utiliser une fonction personnalisée🎜🎜Nous pouvons également personnaliser une fonction pour convertir des objets Object en tableaux. Par exemple : 🎜rrreee🎜Lorsque nous exécutons le code ci-dessus, le résultat de sortie est : 🎜rrreee🎜Il convient de noter que nous devons faire certains jugements et traiter différents types de données afin que nos fonctions puissent faire face à différentes situations. 🎜🎜Résumé🎜🎜En PHP, le type Object a été largement utilisé dans différentes applications de données. La conversion d'un objet en tableau rend le traitement des données plus flexible et plus facile. Cependant, lorsque nous convertissons un objet, nous devons choisir de manière flexible différentes méthodes en fonction de la situation réelle afin de mieux conserver la structure des données et les informations d'origine. 🎜

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