上一篇文章我們了解了序列化對象或數(shù)組的方法,有需要的請看《php如何序列化數(shù)組和對象》。這次我們向大家介紹反序列化對象或數(shù)組的方法,有需要的可以參考參考。
我們開始本篇文章之前,我們先了解一下什么是反序列化。
反序列化就是把字節(jié)流(二進制串)恢復(fù)為數(shù)組和對象的過程。
我們了解了反序列化的含義之后,我們就很容易明白這篇文章需要干什么了。我們需要將上一篇已經(jīng)序列化的對象和數(shù)組還原回來。
先來看一個小例子,就是將上篇序列化的數(shù)組給還原回來。
上篇文章的例子是
<?php $sites = array('Google', '360', 'Facebook'); $serialized_data = serialize($sites); echo $serialized_data . PHP_EOL; ?>
結(jié)果是
那我們就將這個字節(jié)流還原成數(shù)組。
<?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); ?>
還原的結(jié)果是
好啦,我們這就將結(jié)果還原啦。我們細細解讀一下,這么長的一串字符經(jīng)過一個函數(shù),就變成的一個數(shù)組。雖然我們不知道這一長串經(jīng)過了什么?它是如何從一長串?dāng)?shù)字與字母的組合變成我們熟悉的數(shù)組的。
但是我們可以去學(xué)習(xí)一下這個函數(shù)啊。
unserialize() 函數(shù)用于將通過 serialize() 函數(shù)序列化后的對象或數(shù)組進行反序列化,并返回原始的對象結(jié)構(gòu)。
那我們來看一下這個函數(shù)的語法結(jié)構(gòu)吧。
mixed unserialize (需要進行反序列化操作的字符串)
需要注意的是這個函數(shù)的返回值,我們好好來看一下。
這個函數(shù)返回的是轉(zhuǎn)換之后的值,可為integer
、float
、string
、array
或object
。如果傳遞的字符串不可解序列化,則返回FALSE
,并產(chǎn)生一個E_NOTICE
。
就說到這里了,有其他想知道的,可以點擊這個哦?!?→php視頻教程