Maison > développement back-end > Problème PHP > Comment convertir des objets en tableaux en php

Comment convertir des objets en tableaux en php

PHPz
Libérer: 2023-04-17 14:58:05
original
675 Les gens l'ont consulté

En PHP, Object et Array sont deux types de données différents. Mais parfois, nous devons convertir un objet en tableau, par exemple en convertissant les propriétés et les méthodes d'un objet d'instanciation de classe en tableau pour une utilisation facile.

En PHP, il existe plusieurs façons de réaliser une conversion d'objet en tableau.

1. Utilisez la fonction get_object_vars()

C'est la méthode la plus basique et la plus simple. La fonction get_object_vars() peut renvoyer un tableau de tous les attributs et valeurs d'attribut d'un objet.

Par exemple :

1

2

3

4

5

6

7

8

9

10

11

12

13

14

class MyClass {

    public $a = 1;

    protected $b = 2;

    private $c = 3;

 

    public function test(){

        return "hello world!";

    }

}

 

$obj new MyClass();

$array = get_object_vars($obj);

 

print_r($array);

Copier après la connexion

Sortie :

1

2

3

4

Array

(

    [a] => 1

)

Copier après la connexion

On voit que la fonction get_object_vars() n'obtient que la valeur de l'attribut public $a, mais pour les attributs protégés et privés $b et $c, leurs valeurs ​​​sont pas obtenus.

2. Utiliser le casting d'objet

En PHP, vous pouvez utiliser le casting de type pour convertir un objet en tableau. La conversion de type forcée utilise le mot-clé "(array)".

Par exemple :

1

2

3

4

5

6

7

8

9

10

11

12

13

14

class MyClass {

    public $a = 1;

    protected $b = 2;

    private $c = 3;

 

    public function test(){

        return "hello world!";

    }

}

 

$obj new MyClass();

$array = (array$obj;

 

print_r($array);

Copier après la connexion

Sortie :

1

2

3

4

5

6

Array

(

    [a] => 1

    [*b] => 2

    MyClassprivatec] => 3

)

Copier après la connexion

Ce tableau contient toutes les propriétés et valeurs de propriété, mais les propriétés protégées et privées seront préfixées par un * ou un nom de classe pour les distinguer des propriétés publiques.

Il est à noter que cette méthode ne répertorie pas les méthodes de l'objet, uniquement les propriétés de l'objet.

3. Utilisez la fonction json_decode()

En PHP, vous pouvez utiliser la fonction json_decode() pour convertir une chaîne au format JSON en tableau ou objet. Par conséquent, les propriétés d'un objet peuvent être codées au format JSON puis décodées dans un tableau.

Par exemple :

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

class MyClass {

    public $a = 1;

    protected $b = 2;

    private $c = 3;

 

    public function test(){

        return "hello world!";

    }

}

 

$obj new MyClass();

$json = json_encode($obj);

$array = json_decode($json, true);

 

print_r($array);

Copier après la connexion

Sortie :

1

2

3

4

5

6

Array

(

    [a] => 1

    [b] => 2

    [MyClassprivatec] => 3

)

Copier après la connexion

Il est à noter que cette méthode convertira également les propriétés protégées et privées en tableaux, mais sera préfixée par le nom de la classe.

Résumé

Il existe plusieurs méthodes ci-dessus pour convertir des objets en tableaux, notamment l'utilisation de la fonction get_object_vars(), la conversion de type forcée et la fonction json_decode(). Les plus couramment utilisés sont la fonction cast et json_decode().

Il convient de noter que lors de l'utilisation des fonctions cast et json_decode(), les valeurs des attributs protégés et privés peuvent avoir des préfixes de nom de classe ou des symboles tels que *, qui doivent être traités en fonction de circonstances spécifiques.

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