这篇文章主要介绍了PHP常见的序列化与反序列化操作,结合实例形式分析了php使用serialize()及unserialize()进行序列化与反序列化相关操作技巧及注意事项,需要的朋友可以参考下
本文实例讲述了PHP常见的序列化与反序列化操作。分享给大家供大家参考,具体如下:
1.概念
serialize()
把变量和它们的值编码成文本形式
unserialize()
恢复原先变量
2.序列化例子
输入输出
$arr=array();
$arr['name']='张三';
$arr['age']='22';
$arr['sex']='男';
$arr['phone']='123456789';
$arr['address']='上海市浦东新区';
var_dump($arr);
array(5) {
["name"]=> string(6) "张三"
["age"]=> string(2) "22"
["sex"]=> string(3) "男"
["phone"]=> string(9) "123456789"
["address"]=> string(21) "上海市浦东新区"
}
序列化操作
$info=serialize($arr);
var_dump($info);
输出结果
string(140) "a:5:{s:4:"name";s:6:"张三";s:3:"age";s:2:"22";s:3:"sex";s:3:"男";s:5:"phone";s:9:"123456789";s:7:"address";s:21:"上海市浦东新区";}"
解析
使用序列化serialize($arr)函数,将数组中元素的键和值按照规则顺序连接成字符串。
a:5标志序列化为array包含5个键值对,
s:4标志内容为字符串包含4个字符。
3.反序列化列子
$zhangsan=unserialize($info);
var_dump($zhangsan);
输出
array(5) {
["name"]=> string(6) "张三"
["age"]=> string(2) "22"
["sex"]=> string(3) "男"
["phone"]=> string(9) "123456789"
["address"]=> string(21) "北京市海淀区"
}
4.优缺点
通过序列化我们可以将一些模块化的数据使用字符串的形式存储在数据库或session等,可以减少创建众多繁琐的数据表字段,当然序列化为字符串存储会增加额外的空间,应合理的设计和应用。
这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
本文标题为:PHP常见的序列化与反序列化操作实例分析
- Laravel balde模板文件中判断数据为空方法 2023-08-30
- laravel通用化的CURD的实现 2023-03-17
- PHP实现微信支付(jsapi支付)流程步骤详解 2022-10-09
- 用nohup命令实现PHP的多进程 2023-09-02
- PHP仿tp实现mvc框架基本设计思路与实现方法分析 2022-10-18
- laravel实现按月或天或小时统计mysql数据的方法 2023-02-22
- php微信公众号开发之秒杀 2022-11-23
- PHP中PDO事务处理操作示例 2022-10-15
- windows下9款一键快速搭建PHP本地运行环境的好工具(含php7.0环境) 2023-09-02
- PHP简单实现二维数组的矩阵转置操作示例 2022-10-02