PHP程序对象、数组串行化(序列化)

来源:互联网 发布:如何上淘宝网买东西 编辑:程序博客网 时间:2024/06/08 14:14

对象串行化:

使用情况:

对象的创建的时候被存储到内存里,在解析的时候被销毁,如果机器重启,那么对象也将被销毁在新建。想要保存对象或者将对象传给另一台机器,就需要将对象串行化(序列化)。

将对象转化成字符串叫串行化

将字符串转化成对象叫反串行化


使用方法(1):

1,串行化的时机:

(1)将对象在网络中传输

(2)将对象持久保存

2,$str = serialize($p);   $p是一个对象,将对象转成字符串赋值给$str变量。

3,file_put_contents("qq.txt", $str); 将$str字符串保存在qq.txt文件中,在项目配置的根目录下。

4,$str = file_get_contents(11.txt); 从qq.txt文件中取出内容

5,$p = unserialize($str);   将字符串转成对象赋值给$p变量。


使用方法(2):

1,在使用serialize()函数串行化的时候自动调用__sleep()魔术方法。

作用:可以设置需要串行化的对象的属性,如果没有这个魔术方法,就将所有的属性都串行化

使用:只要在这个方法中,返回一个数组,在数组中声明了哪个属性名,那个属性就被串行化;没有在这个数组中的就不被串行化。对象中的方法还是会串行化的

2,在使用unserialize()函数反串行化的时候自动调用__wakeup()魔术方法

作用:对串行化回来的对象经行初始化,和__construst()和__clone()功能类似

使用:在方法内可以修改属性的值



数组串行化:

使用情况:

在跨语言,跨设备传输数组时,由于两者之间的数据格式不同,所以要将数据统一转成json(javascript object )格式传输

使用方法:

(1)使用json_encode()将变量(数组、对象)转化成JSON字符串。如:$str = json_encode($var);

(2)使用json_decode()将JSON字符串转化成变量(数组、对象)。如:$var = json_decode($str ,true);这个函数有两个参数,如果没有第二个参数,则反字符串为对象,如果第二个参数为true,则表示转化成数组。




1 0
原创粉丝点击