Maison  >  Article  >  développement back-end  >  Convertir un objet en chaîne JSON

Convertir un objet en chaîne JSON

不言
不言original
2018-07-07 11:44:486803parcourir

Cet article présente principalement la conversion d'objets en chaînes JSON, qui a une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer

Définir une classe d'étudiant :

1 class Student {
2     public $name;
3     public $age;
4     function __construct($name, $age) {
5         $this->name = $name;
6         $this->age = $age;
7     }
8 }

A ce moment, créez un nouvel objet et faites écho directement : 1 $person1 = new Student('jack', 20); 2 echo $person1;

Le résultat n'est pas comme nous nous y attendions L'objet a été imprimé comme ça mais une erreur fatale a été signalée :

signifie que l'objet instancié par la classe Student ne peut pas être converti en chaîne. peut obtenir un message : : echo doit être suivi d'une chaîne,

sinon il sera automatiquement converti en chaîne Alors comment convertir un objet en chaîne ?

Introduisez d'abord une méthode magique : __tostring() Cette méthode est utilisée pour déterminer comment une classe doit répondre lorsqu'elle est traitée comme une chaîne. Par exemple, echo $obj;

devrait afficher quoi. Cette méthode doit renvoyer une chaîne, sinon une erreur fatale de niveau E_RECOVERABLE_ERROR sera émise.

Ajoutez cette méthode magique à la classe Student :

 1 class Student { 
 2      public $name; 
 3      public $age; 
 4      function __construct($name, $age) { 
 5           $this->name = $name; 
 6           $this->age = $age; 
 7      } 
 8      function __tostring() { 
 9           return json_encode($this, JSON_FORCE_OBJECT);
 10      }
 11 }

La méthode json_encode(value, options) peut convertir un objet en chaîne JSON , cette méthode accepte deux paramètres,

Le premier paramètre : valeur
La valeur à encoder, à l'exception du type de ressource, peut être n'importe quel type de données
Cette fonction ne peut accepter que les données codées en UTF-8

Deuxième paramètre : options
Masque binaire composé des constantes suivantes : JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJ ECT, .

Valeur de retour : renvoie une chaîne représentée sous forme JSON si l'encodage est réussi ou renvoie FALSE en cas d'échec.

remarque : Par rapport à la méthode json_encode, il existe la méthode json_decode. Cette méthode peut convertir une chaîne au format JSON en variable PHP. Cette méthode accepte deux paramètres

. Le premier paramètre : chaîne json

Le deuxième paramètre : vrai/faux, quand vrai, cela signifie convertir la chaîne en tableau, lorsqu'il est faux, cela signifie conversion est un objet, la valeur par défaut est false

Valeur de retour : objet ou tableau (lorsque le deuxième paramètre est vrai)

Vous pouvez l'ouvrir dans le navigateur à ce moment-là, vérifiez que la conversion est réussie :

Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Comment compiler et installer le service php redis

Base de données et création de tables de code source php - fichier de configuration - erreur méthode log

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