php面向对象(OOP):把对象串行化
来源:互联网 发布:天刀蓝忘机捏脸数据 编辑:程序博客网 时间:2024/05/17 05:19
有时候需要把一个对象在网络上传输,为了方便传输,可以把整个对象转化为二进制串,等到达另一端时,再还原为原来的对象,这个过程称之为串行化, 就像我们现在想把一辆汽车通过轮船运到美国去,因为汽车的体积比较大,我们可以把汽车拆开成小的部件,然后我们把这些部件通过轮般运到美国去,到了美国再把这些部件组装回汽车。
有两种情况我们必须把对象串行化,第一种情况就是把一个对象在网络中传输的时候要将对象串行化,第二种情况就是把对象写入文件或是数据库的时候用到串行化。
串行化有两个过程,一个是串行化,就是把对象转化为二进制的字符串,我们使用serialize()函数来串行化一个对象,另一个是反串行化,就是把对象转化的二进制字符串再转化为对象, 我们使用unserialize()函数来反串行化一个对象.
PHP中serialize()函数的参数为对象名,返回值为一个字符串,Serialize()返回的字符串含义模糊,一般我们不会解析这个串来得到对象的信息,我们只要把返回来的这个字符串传到网络另一端或是保存到方件中即可。
PHP中unserialize()函数来反串行化对象,这个函数的参数即为serialize()函数的返回值,输出当然是重新组织好的对象.
上例输出结果:
O:6:"Person":3:{s:4:"name";s:4:"张三";s:3:"sex";s:2:"男";s:3:"age";i:20;}
我的名子叫:张三 性别:男 我的年龄是:20
在php5中有两个魔术方法__sleep()方法和__wakeup()方法,在对象串行化的时候,会调用一个__sleep()方法来完成一些睡前的事情;而在重新醒来,即由二进制串重新组成一个对象的时候,则会自动调用PHP的另一个函数__wakeup(),做一些对象醒来就要做的动作。
__sleep()函数不接受任何参数, 但返回一个数组,其中包含需要串行化的属性。末被包含的属性将在串行化时被忽略,如果没有__sleep()方法,PHP将保存所有属性。
上例输出值为:
O:6:"Person":2:{s:4:"name";s:4:"张三";s:3:"age";i:20;}
我的名子叫:张三 性别: 我的年龄是:40
- php面向对象(OOP):把对象串行化
- PHP面向对象(OOP)编程完全教程:22.把对象串行化serialize()方法
- 【php面向对象】把对象串行化serialize()方法
- php 把对象串行化
- PHP 面向对象OOP
- PHP 面向对象(OOP) 笔记
- php面向对象(OOP)—序列化(串行化)与反序列化之serialize(),unserialize,__sleep(),__wakeup()
- PHP面向对象_对象串行化serialize(),__sleep(),__wakeup()
- php面向对象(OOP)—实例化对象
- php对象串行化
- PHP-对象串行化
- PHP面向对象之对象串行化和反串行化
- php面向对象(OOP):php5接口技术
- php面向对象(OOP)编程完全教程
- php面向对象(OOP)—接口(interface)
- php面向对象(OOP)—多态
- php面向对象(OOP)—__autoload()函数
- PHP OOP面向对象学习内容
- spring系列之 回调函数的使用
- extjs实例 ---生成下拉框
- MySQL bind-address
- JSP页面显示乱码解决方法
- PortTunnel端口映射后,取外网IP
- php面向对象(OOP):把对象串行化
- 使用Nhibernate需注意的问题
- 如何成为一个优秀的测试工程师
- struts2 学习笔记- 传智播客 2010-9-13
- Checkstyle的配置详解
- Checkstyle的配置详解
- vc++中实现文件拖放功能
- android 获取服务器json数据
- js取得路径参数的值