上一篇文章我们了解了序列化对象或数组的方法,有需要的请看《php如何序列化数组和对象》。这次我们向大家介绍反序列化对象或数组的方法,有需要的可以参考参考。
我们开始本篇文章之前,我们先了解一下什么是反序列化。
反序列化就是把字节流(二进制串)恢复为数组和对象的过程。
我们了解了反序列化的含义之后,我们就很容易明白这篇文章需要干什么了。我们需要将上一篇已经序列化的对象和数组还原回来。
先来看一个小例子,就是将上篇序列化的数组给还原回来。
上篇文章的例子是
<?php $sites = array('Google', '360', 'Facebook'); $serialized_data = serialize($sites); echo $serialized_data . PHP_EOL; ?>
结果是
那我们就将这个字节流还原成数组。
<?php $str = 'a:3:{i:0;s:6:"Google";i:1;s:3:"360";i:2;s:8:"Facebook";}'; $unserialized_data = unserialize($str); print_r($unserialized_data); ?>
还原的结果是
好啦,我们这就将结果还原啦。我们细细解读一下,这么长的一串字符经过一个函数,就变成的一个数组。虽然我们不知道这一长串经过了什么?它是如何从一长串数字与字母的组合变成我们熟悉的数组的。
但是我们可以去学习一下这个函数啊。
unserialize() 函数用于将通过 serialize() 函数序列化后的对象或数组进行反序列化,并返回原始的对象结构。
那我们来看一下这个函数的语法结构吧。
mixed unserialize (需要进行反序列化操作的字符串)
需要注意的是这个函数的返回值,我们好好来看一下。
这个函数返回的是转换之后的值,可为integer
、float
、string
、array
或object
。如果传递的字符串不可解序列化,则返回FALSE
,并产生一个E_NOTICE
。
就说到这里了,有其他想知道的,可以点击这个哦。→ →php视频教程