Comment convertir un tableau PHP en tableau d'objets JSON

PHPz
Libérer: 2023-04-19 09:53:23
original
500 Les gens l'ont consulté

La conversion d'un tableau en tableau d'objets JSON ou en tableau d'objets en PHP est une tâche qui doit être effectuée fréquemment. Cet article explique comment implémenter cette fonctionnalité via un exemple de code.

Convertir un tableau PHP en tableau d'objets JSON

Tout d'abord, nous devons définir un tableau PHP contenant plusieurs tableaux associatifs. Un exemple est le suivant :

$data = array(
    array(
        'name' => 'John',
        'age' => 30
    ),
    array(
        'name' => 'Mary',
        'age' => 25
    ),
    array(
        'name' => 'Peter',
        'age' => 35
    )
);
Copier après la connexion

Ensuite, nous pouvons utiliser la fonction intégrée PHP json_encode() pour convertir ce tableau PHP en un tableau d'objets JSON. L'exemple est le suivant :

$json_data = json_encode($data);
Copier après la connexion
Copier après la connexion

Avec le code ci-dessus, nous convertissons le tableau PHP $data en tableau d'objets JSON $json_data. Le résultat de la conversion est le suivant :

[
    {"name":"John","age":30},
    {"name":"Mary","age":25},
    {"name":"Peter","age":35}
]
Copier après la connexion
Copier après la connexion
Copier après la connexion

Convertir un tableau PHP en un tableau d'objets contenant des méthodes dans un tableau d'objets JSON

Dans certains cas, nous devons convertir un tableau PHP en un tableau d'objets JSON, où chaque objet contient dans méthode d’ajout aux propriétés. Pour réaliser cette fonctionnalité, nous pouvons utiliser des classes anonymes en PHP. Un exemple est le suivant :

$data = array(
    new class('John', 30) {
        public $name;
        public $age;

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

        public function sayHello() {
            echo 'Hello, my name is ' . $this->name;
        }
    },
    new class('Mary', 25) {
        public $name;
        public $age;

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

        public function sayHello() {
            echo 'Hello, my name is ' . $this->name;
        }
    },
    new class('Peter', 35) {
        public $name;
        public $age;

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

        public function sayHello() {
            echo 'Hello, my name is ' . $this->name;
        }
    }
);
Copier après la connexion

Dans le code ci-dessus, nous définissons un tableau PHP $data, dont chaque élément est une instance d'une classe anonyme. La classe anonyme contient les propriétés $name et $age et la méthode sayHello(). Ensuite, nous pouvons convertir le tableau PHP $data en un tableau d'objets JSON via la fonction json_encode().

$json_data = json_encode($data);
Copier après la connexion
Copier après la connexion

Les résultats de la conversion sont les suivants :

[
    {"name":"John","age":30},
    {"name":"Mary","age":25},
    {"name":"Peter","age":35}
]
Copier après la connexion
Copier après la connexion
Copier après la connexion

La méthode sayHello() n'est pas incluse dans les résultats ci-dessus, car lors de la conversion d'un objet PHP en objet JSON, seuls les attributs seront inclus, pas les méthodes.

Convertir un tableau PHP en tableau d'objets contenant des méthodes dans un tableau d'objets JSON

Dans certains cas, nous devons convertir un tableau PHP en tableau d'objets JSON, où chaque objet contient des méthodes en plus des propriétés. Afin de réaliser cette fonction, nous pouvons utiliser l’héritage de classe. Un exemple est le suivant :

class Person {
    public $name;
    public $age;

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

    public function sayHello() {
        echo 'Hello, my name is ' . $this->name;
    }
}

class John extends Person {
    public function sayHello() {
        echo 'Hello, my name is ' . $this->name . ' and I am John';
    }
}

class Mary extends Person {
    public function sayHello() {
        echo 'Hello, my name is ' . $this->name . ' and I am Mary';
    }
}

class Peter extends Person {
    public function sayHello() {
        echo 'Hello, my name is ' . $this->name . ' and I am Peter';
    }
}

$data = array(
    new John('John', 30),
    new Mary('Mary', 25),
    new Peter('Peter', 35)
);

$json_data = json_encode($data);
Copier après la connexion

Dans le code ci-dessus, nous définissons la classe Person et ses trois sous-classes John, Mary et Peter. Ces trois sous-classes héritent toutes de la classe Person et remplacent la méthode sayHello(). Ensuite, nous définissons un tableau PHP $data, qui contient des instances de John, Mary et Peter. Enfin, nous convertissons le tableau PHP $data en un tableau d'objets JSON en appelant la fonction json_encode().

Le résultat de la conversion est le suivant :

[
    {"name":"John","age":30},
    {"name":"Mary","age":25},
    {"name":"Peter","age":35}
]
Copier après la connexion
Copier après la connexion
Copier après la connexion

Identique à l'exemple précédent, la méthode sayHello() n'est pas incluse dans le résultat ci-dessus. Si vous devez inclure des méthodes dans un tableau d'objets JSON, vous devez convertir ces méthodes en attributs.

Résumé

Cet article explique comment convertir un tableau en tableau d'objets JSON ou en tableau d'objets en PHP, et inclut quelques exemples de cas particuliers, tels que : comment convertir si les objets du tableau contiennent des méthodes. J'espère que ces exemples vous seront utiles pour votre travail ou vos études.

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