使用私有成员对 PHP 对象进行 JSON 编码
PHP 的 json_encode 函数提供了一种将对象序列化为 JSON 格式的便捷方法。但是,在处理存储在私有类成员中的数据时,它可能会出现问题。
要克服此限制,可以使用自定义编码函数:
public function encodeJSON() { foreach ($this as $key => $value) { $json->$key = $value; } return json_encode($json); }
虽然此解决方案适用于对象如果没有嵌套对象,则无法对主对象中的嵌套对象进行编码。
解决方案:实现 JsonSerialized接口
最有效的方法是实现JsonSerialized并定义一个jsonSerialize方法来控制序列化。 jsonSerialize 方法应该返回需要序列化的数据。
class Item implements \JsonSerializable { private $var; private $var1; private $var2; // ... constructors and other methods ... public function jsonSerialize() { $vars = get_object_vars($this); return $vars; } }
实现 JsonSerialized 后,json_encode 将正确序列化对象,包括任何嵌套对象。
以上是如何在 PHP 中使用 JSON 编码来处理具有私有成员的对象?的详细内容。更多信息请关注PHP中文网其他相关文章!