上一篇文章我們了解了序列化物件或陣列的方法,有需要的請看《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影片教學
#以上是php如何反序列化數組和對象的詳細內容。更多資訊請關注PHP中文網其他相關文章!