PHP中对象序列化与反序列化

2022-10-11 21:16:17 110 0
魁首哥

1、 序列化 :将对象通过一系列操作,转化为一个 字符串 的存储起来,并且在需要的时候可以还原出来,称为序列化。

2、反序列化:将序列化后的字符串,再转为对象的过程,称为反序列化。

3、什么时候使用序列化?

1.对象需要在网络中传输的时候2.对象需要在文件或数据库中持久保存的时候 

4、怎样实现串行化与反串行化

序列化: $str=serialize($duixiang);反序列化:$duixiang=unserialize($str); 

5、__sleep()魔术方法:

1.当执行对象串行化的时候,会自动执行__sleep()函数;

2.__sleep()函数要求返回一个数组,数组中的值,就是可以序列化的属性;不在数组中的属性,不能被序列化;

3.是序列化函数之前时的事情,就像一个 回调函数 ,所以在这个回调函数里面我们就可以做点事情,来隐藏我的秘密,即将原本的值更改,是序列化后不能获取原有值。

function __sleep(){
 return array("name","age"); //只有name/age两个属性可以串行化。} 

6、__wakeup()魔术方法

1.当反串行化对象时,自动调用__wakeup()方法;

2.自动调用时,用于给反序列化产生的新对象属性,进行重新赋值。

function __wakeup(){
 $this -> name = "李四";
} 

收藏
分享
海报
0 条评论
110
上一篇:《深入PHP:面向对象、模式与实践》电子书,免费分享 下一篇:重蔚php学习第二十六天——php流程控制,php模板语法

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码