首页 >后端开发 >PHP问题 >php如何反序列化数组和对象

php如何反序列化数组和对象

醉折花枝作酒筹
醉折花枝作酒筹原创
2021-08-06 10:33:222730浏览

上一篇文章我们了解了序列化对象或数组的方法,有需要的请看《php如何序列化数组和对象》。这次我们向大家介绍反序列化对象或数组的方法,有需要的可以参考参考。

我们开始本篇文章之前,我们先了解一下什么是反序列化。

反序列化就是把字节流(二进制串)恢复为数组和对象的过程。

我们了解了反序列化的含义之后,我们就很容易明白这篇文章需要干什么了。我们需要将上一篇已经序列化的对象和数组还原回来。

先来看一个小例子,就是将上篇序列化的数组给还原回来。

上篇文章的例子是

<?php    
$sites = array(&#39;Google&#39;, &#39;360&#39;, &#39;Facebook&#39;);    
$serialized_data = serialize($sites);    
echo  $serialized_data . PHP_EOL;  
?>

结果是

[H})%Q$DK$}4GO8_2X]CDQH.png

那我们就将这个字节流还原成数组。

<?php
$str = &#39;a:3:{i:0;s:6:"Google";i:1;s:3:"360";i:2;s:8:"Facebook";}&#39;;
$unserialized_data = unserialize($str);
print_r($unserialized_data);
?>

还原的结果是

)Z$5JK}[0KHZ(363D2U(2}3.png

好啦,我们这就将结果还原啦。我们细细解读一下,这么长的一串字符经过一个函数,就变成的一个数组。虽然我们不知道这一长串经过了什么?它是如何从一长串数字与字母的组合变成我们熟悉的数组的。

但是我们可以去学习一下这个函数啊。

unserialize() 函数用于将通过 serialize() 函数序列化后的对象或数组进行反序列化,并返回原始的对象结构。

那我们来看一下这个函数的语法结构吧。

mixed unserialize (需要进行反序列化操作的字符串)

需要注意的是这个函数的返回值,我们好好来看一下。

这个函数返回的是转换之后的值,可为integerfloatstringarrayobject。如果传递的字符串不可解序列化,则返回FALSE,并产生一个E_NOTICE

就说到这里了,有其他想知道的,可以点击这个哦。→ →php视频教程

以上是php如何反序列化数组和对象的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn