Comment encoder des objets PHP avec des membres privés à l'aide de JSON
L'encapsulation est un concept important dans la programmation orientée objet, permettant aux objets de conserver leur données cachées. Cependant, cela peut devenir un défi lorsque vous essayez de sérialiser des objets, par exemple lors de leur codage en JSON.
Ce problème survient lorsqu'un objet contient des données membres qui sont également des objets. Le simple fait d'appeler json_encode sur l'objet externe ne sérialisera que ses données de niveau supérieur, en ignorant les objets imbriqués.
La solution réside dans l'implémentation de l'interface JsonSerializing. Cette interface fournit une méthode jsonSerialize qui vous permet de spécifier comment votre objet doit être sérialisé.
Pour encoder un objet avec des membres privés :
Considérez l'exemple suivant :
class Item implements \JsonSerializable { private $var; private $var1; private $var2; public function __construct() { // ... } public function jsonSerialize() { $vars = get_object_vars($this); return $vars; } }
Désormais, lors de l'appel de json_encode sur une instance de cette classe, il sérialisera correctement tous ses membres, y compris privés ceux.
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!