PHP程序对象、数组串行化(序列化)
2015-11-13 14:17
741 查看
对象串行化:
使用情况:
对象的创建的时候被存储到内存里,在解析的时候被销毁,如果机器重启,那么对象也将被销毁在新建。想要保存对象或者将对象传给另一台机器,就需要将对象串行化(序列化)。
将对象转化成字符串叫串行化
将字符串转化成对象叫反串行化
使用方法(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):
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,则表示转化成数组。
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得
- apache 环境下 php 的配置注意事项
- ASP.NET、ASP、PHP、JSP之间有什么区别?
- PHP VBS JS 函数 对照表
- C语言实现的统计php代码行数功能源码(支持文件夹、多目录)
- php xml 入门学习资料