关于PHP的JsonSerializable

发布时间:2019-08-07 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了关于PHP的JsonSerializable脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

我们都知道php的json_encode()可以对一个对象进行编码生成json字符串,但是我们的程序中对象往往是很复杂的,json_encode()只是json话对象的公共属性,这的确有点力不从心,好在在php5.4开始有了一个叫做JsonSerializable的接口,它解决了这个痛点,我们来看一看。

什么是JsonSerializable

JsonSerializable是一个接口任何实现了这个接口的类, 需要定义一个jsonSerialize()方法, 这个方法会在对这个类的对象做Json化的时候被调用, 这个时候你就可以在这个方法内 , 随意调整最终的Json化的结果。

不懂么?来个例子!

class Man implements JsonSerializable {
    PRivate $a, $b;
 
    public function __construct($a, $b) {
        $this->a = $a;
        $this->b = $b;
    }
 
    public function jsonSerialize() {
        return $this->a + $this->b;
    }
}

echo json_encode(new Man (23, 42));// 输出65

你看到了,此时当json_encode对Man类的对象进行编码时,因为Man类继承了JsonSerializable ,因此不会去管类的公共属性而是调用了jsonSerialize函数,将其结果返回。

为何讲这个

可能你会疑问为何我会说这个,一来现在app、微服务大道其行的今天,json协议重要的不要不要的,了解这个接口对我们操作json益处很大,二来在yii的Json类中也用到了JsonSerializable接口,所以学习这对我们研究yii代码是很有好处的。


本文原创发布于微信公众号 北哥兄弟连

关于PHP的JsonSerializable

脚本宝典总结

以上是脚本宝典为你收集整理的关于PHP的JsonSerializable全部内容,希望文章能够帮你解决关于PHP的JsonSerializable所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。