这篇文章讲述了差异的序列化和反序列化的JSON序列化和运行PHP。分享给您参考,如下:

序列化和反序列化的JSON序列化和PHP的区别是什么我们可以在萧边这一问题的看。具体操作如下。

在PHP中,两种序列化和JSON序列化或反序列化的对象或数组的区别是什么

假设一个对象和一个数组:


网络=新stdClass美元;
Web站点'tantengvip美元=>;
为Web ->业主= 'tuntun;
美元=年龄= 5;

元=数组();
{ } =网络'site美元'tantengvip;
{ } =网络'owner美元'tuntun;
网络时代{ } = $ 5;




他们是序列化和反序列化序列化序列化-功能和功能,分别看到打印的结果是什么,如下:

使用序列化方法:


var_dump(连载($网络));
var_dump(序列化(序列化($网络)));
var_dump(json_encode($网络));
var_dump(json_decode(json_encode($网络)));




结果uff1a


string'o:8:stdClass 3:{:4:现场;:10:tantengvip ;:5:业主:6:;屯屯;年龄;:3:我:5;}(长度= 87)
对象(stdClass){ 127 }
public'site= > string'tantengvip(长度= 10)
public'owner= > string'tuntun(长度= 6)
public'age ' = int 5
String'{site: tantengvip
对象(stdClass){ 127 }
public'site= > string'tantengvip(长度= 10)
public'owner= > string'tuntun(长度= 6)
public'age ' = int 5




使用JSON方法:


var_dump(连载($网络));
var_dump(序列化(序列化($网络)));
var_dump(json_encode($网络));
var_dump(json_decode(json_encode($网络),真的));




结果:


string'a:3:{:4:网站的:10:;tantengvip ;:5:业主:6:;屯屯;年龄;:3:我:5;}(长度= 74)
数组(大小= 3)
网站= > string'tantengvip(长度= 10)
主人= > string'tuntun(长度= 6)
年龄= > int 5
字符串{现场:tantengvip
数组(大小= 3)
网站= > string'tantengvip(长度= 10)
主人= > string'tuntun(长度= 6)
年龄= > int 5




我们发现一个以前定义的对象或数组,它是序列化和JSON序列化。反序列化的结果与以前一样,只是序列化的格式不同。

那么它们之间有什么区别呢下面的文字非常好,你不能解释它,你可以写代码验证。

使用JSON序列化和反序列化

优势:

变量被序列化并且仍然可读。

它可以用于其他系统,因为JSON格式是标准的。

uff1a自卑

只有UFT-8的数据是有效的,其他的编码可能无法正常工作

这类的例子是有效stdClass

使用序列化和反序列化序列化

优势:

允许非UTF-8的变量

支持例外stdClass的其他实例

uff1a自卑

编码的文本难以理解的人

不能用其他语言的系统引用

那么,写一个代码看看:


类测试
{
私人$ PRI =先;
公共课=测试美元;
公共功能__construct()
{
美元->类测试结构;
美元->优先级=先构造;
}
}
新测试();
var_dump(连载($试验));
var_dump(序列化(序列化($测试)));
var_dump(json_encode($试验));
var_dump(json_decode(json_encode($测试)));




结果uff1a


string'o:4:测试2:{:9:testpri ;:13:PRI构建;:5类;:14:测试建构;}(长度= 86)
对象(测试){ 127 }
private'pri= > string'pri建构(长度= 13)
public'class= > string'test建构(长度= 14)
字符串类:测试构造}(长度= 26)
对象(stdClass){ 127 }
public'class= > string'test建构(长度= 14)




我们发现JSON序列化和反序列化的类的私有成员变量了,而序列化序列化与反序列化的类中的所有变量,但该类的成员方法不能被序列化和反序列化。

一般来说,最好是使用JSON,因为JSON是一个跨平台的通用格式,使用JSON的例外,它是更好地使用XML。当不使用序列化

当一个类的序列化序列化,它会调用魔法__wakeup()默认情况下,使对象重建各种状态不能保存序列化过程。例如:数据库连接等等。这是另一个问题,并不是要在这里学习。

关于PHP相关内容的更多读者感兴趣的读者可以看到特别站:PHP字符串(字符串)、PHP使用摘要数组(数组)、PHP技能大全教程

希望本文能对PHP程序设计有所帮助。