【web 开发基础】PHP8 中数组的序列化和反序列化(54)
前言
数组的序列化(serialize)用来将数组的数据转换为字符串,以方便传递和数据库的存储。与之相对应的操作就是反序列化(unserialize),把字符串数据转换为数组加以使用。数组的序列化主要通过 serialize()函数来完成。字符串的反序列化主要通过 unserialize()函数来完成。
对象的序列化与反序列化
下面通过实例介绍 serialize()函数和 unserialize()函数的使用方法以及技巧:
serialize()和 unserialize()两个函数的使用比较简单,但是通过这样的方法对数组数据的存储和传递将会十分方便。比如,可以直接把序列化之后的数组数据存放在数据库的某个字段中。在使用时再通过反序列化进行处理。对象同样可以序列化,我们都知道在 PHP 中,对象是由属性和方法组成的。对象是由属性组成的这很好理解,一个对象的属性是它区别于另一个对象的关键所在。由于 PHP 的对象是用数组来模拟的,因此我们可以把对象转为数组,就能看到对象所拥有的属性。其实对象就是有一堆数据。所以,我们可以把一个对象存储起来,以便需要的时候使用。这时候就会使用到对象的序列化。所谓的对象序列化,就是把保存在内存中的各种对象状态(属性)保存起来,并且在需要时可以还原出来。
注:在序列化和反序列化时都需要包含类的对象的定义,不然有可能出现在反序列化对象时,找不到该对象的类的定义,而返回不正确的结果。
总结
对象序列化之后,存储的只是对象的属性。类是由属性和方法组成的,而对象则是属性的集合,由同一个类生成的不同对象,拥有各自不同的属性,但共享了类的代码空间中的方法区域的代码
版权声明: 本文为 InfoQ 作者【迷彩】的原创文章。
原文链接:【http://xie.infoq.cn/article/ea9232d6dfc087a57703a3125】。文章转载请联系作者。
评论