您当前的位置: 首页 >  php

暂无认证

  • 3浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

php面向对象第是十二篇 对象串行化(序列化)__sleep()和__wakeup()

发布时间:2020-06-04 23:49:05 ,浏览量:3

对象串行化: 在什么情况下需要 对象串行化,? 第一种情况就是把一个对象 在网络中传输的时候要将对象串行化,第二种情况就是把对象写入文 件或是数据库的时候用到串行化 对象串行化(序列化)都是为了方便传输把。 举个例子把:像是: ,就像我们现在想把一辆汽车通过 轮船运到美国去,因为汽车的体积比较大,我们可以把汽车拆开成小 的部件,然后我们把这些部件通过轮般运到美国去,到了美国再把这 些部件组装回汽车。 串行化有两个过程,一个是串行化,就是把对象转化为二进制的 字符串,我们使用 serialize()函数来串行化一个对象,另一个是反串行 化,就是把对象转化的二进制字符串再转化为对象, 我们使用 unserialize()函数来反串行化一个对象。 解释:O代表 在这里插入图片描述

 var $name; var $sex; var $age; function __construct($name="",$sex="",$age="") { $this->name=$name; $this->sex=$sex; $this->age=$age; } function say() { echo "反串行化 名字:".$this->name.",性别:".$this->sex.",年龄:".$this->age;//二进制变成对象 } function __sleep() { $arr=array("name","age");//这样做是删除掉sex变量 return($arr); } function __wakeup() { $this->age=40;//反串行化的时候就修改age的值为40,因为sex性别已经删除掉了,所以已经没有了哈 } } $p1=new people("陈业贵","男",20); $p1_string=serialize($p1);//串行化,这个是转换成二进制。__sleep的时候就转换成二进制(过程中) echo "串行化:".$p1_string; echo "
"; $p2=unserialize($p1_string);//反串行化,调用__wakeup在转换成对象(过程中) $p2->say(); ?> 
关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

0.0528s