Maison > Article > développement back-end > Convertir un objet en chaîne JSON
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
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!