文档章节

php的serialize和unserialize的用法

freedonn
 freedonn
发布于 2014/04/02 15:44
字数 640
阅读 221
收藏 3

serialize --  产生一个可存储的值的表示 

描述 string serialize ( mixed value )  

serialize() 返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方。  

这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。  

想要将已序列化的字符串变回 PHP 的值,可使用 unserialize()。

serialize() 可处理除了 resource 之外的任何类型。甚至可以 serialize() 那些包含了指向其自身引用的数组。你正 serialize() 的数组/对象中的引用也将被存储。  

当序列化对象时,PHP 将试图在序列动作之前调用该对象的成员函数 __sleep()。这样就允许对象在被序列化之前做任何清除操作。

类似的,当使用 unserialize() 恢复对象时, 将调用 __wakeup() 成员函数。  

注意: 在 PHP 3 中,对象属性将被序列化,但是方法则会丢失。PHP 4 打破了此限制,可以同时存储属性和方法。请参见类与对象中的序列化对象部分获取更多信息。  

unserialize (PHP 3 >= 3.0.5, PHP 4, PHP 5)  

unserialize --  从已存储的表示中创建 PHP 的值 

描述 mixed unserialize ( string str [, string callback] )  

unserialize() 对单一的已序列化的变量进行操作,将其转换回 PHP 的值。

返回的是转换之后的值,可为 integer、float、string、array 或 object。如果传递的字符串不可解序列化,则返回 FALSE。  

unserialize_callback_func 指令: 如果在解序列化的时候需要实例化一个未定义类,则可以设置回调函数以供调用(以免得到的是不完整的 object “__PHP_Incomplete_Class”)。可通过 php.ini、ini_set() 或 .htaccess 定义‘unserialize_callback_func’。

每次实例化一个未定义类时它都会被调用。若要禁止这个特性,只需置空此设定。还需要注意的是 unserialize_callback_func 指令是从 PHP 4.2.0 开始提供使用的。  注意: callback 参数是在 PHP 4.2.0 中添加的  若被解序列化的变量是一个对象,在成功地重新构造对象之后,PHP 会自动地试图去调用 __wakeup() 成员函数(如果存在的话)。  

具体用法: 

1:$arr = array("测试1","测试2","测试3");//数组 

2:$sarr = serialize($arr);//产生一个可存储的值(用于存储)

 3://用任意方法(例如:你要是吧$sarr存在一个文本文件中你就可以用file_get_contents取得)得到存储的值保存在$newarr中;

 4:$unsarr=unserialize($newarr);//从已存储的表示中创建 PHP 的值

本文转载自:http://www.phplover.cn/post/php-serialize-unserialize.html

freedonn

freedonn

粉丝 25
博文 258
码字总数 16565
作品 0
潍坊
程序员
私信 提问
php函数serialize()与unserialize()

php函数serialize()与unserialize()说明及案例。想要将已序列化的字符串变回 PHP 的值,可使用unserialize()。serialize()可处理除了resource之外的任何类型。甚至可以serialize()那些包含了...

晨曦之光
2012/03/09
129
0
php函数 serialize()和unserialize()

php函数:序列化函数——serialize()与反序列化函数——unserialize()说明及案例。 serialize()返回字符串,此字符串包含了表示value的字节流,可以存储于任何地方。这有利于存储或传递 PHP ...

Claire_level
2012/06/09
61
1
SplPriorityQueue 序列化并反序列化后结果为空问题解决

今天在尝试把对象序列化并反序列化后,遇到了问题。反序列化后在队列里的数据全没了,这让我很伤心。 结果: 莫得办法,自己动手丰衣足食吧!通过自定义类继承并实现接口,来自己处理序列化和...

宇润
2018/12/19
18
0
PHP serialize & JSON 解析

对于JSON(JavaScript Object Notation)大家应该不陌生,它是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECM...

说谎的少年
2014/09/20
273
0
【宇润日常疯测-003】PHP 序列化和 JSON 哪个更好?

有了 Swoole 以后,用我们熟悉的 PHP 就可以很方便地开发网络通信应用。有时候我们系统内部需要交换数据,那么,这时候问题来了,网络通讯的数据格式是选择 还是 呢? 一通分析猛如虎 显然更...

宇润
2018/12/10
72
1

没有更多内容

加载失败,请刷新页面

加载更多

SpringBoot中 集成 redisTemplate 对 Redis 的操作(二)

SpringBoot中 集成 redisTemplate 对 Redis 的操作(二) List 类型的操作 1、 向列表左侧添加数据 Long leftPush = redisTemplate.opsForList().leftPush("name", name); 2、 向列表右......

TcWong
今天
5
0
排序––快速排序(二)

根据排序––快速排序(一)的描述,现准备写一个快速排序的主体框架: 1、首先需要设置一个枢轴元素即setPivot(int i); 2、然后需要与枢轴元素进行比较即int comparePivot(int j); 3、最后...

FAT_mt
昨天
4
0
mysql概览

学习知识,首先要有一个总体的认识。以下为mysql概览 1-架构图 2-Detail csdn |简书 | 头条 | SegmentFault 思否 | 掘金 | 开源中国 |

程序员深夜写bug
昨天
10
0
golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web

micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架...

非正式解决方案
昨天
8
0
前端——使用base64编码在页面嵌入图片

因为页面中插入一个图片都要写明图片的路径——相对路径或者绝对路径。而除了具体的网站图片的图片地址,如果是在自己电脑文件夹里的图片,当我们的HTML文件在别人电脑上打开的时候图片则由于...

被毒打的程序猿
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部