serialize() //把变量和它们的值编码成文本形式,即产生一个可存储的值的表示
詳解:
#serialize()
傳回字串,此字串包含了表示value 的位元組流,可以儲存於任何地方。這有利於儲存或傳遞 PHP 的值,同時不遺失其類型和結構。
unserialize() //恢复原先变量。
詳情:
unserialize()
對單一的已序列化的變數進行操作,將其轉換回PHP 的值。如果傳遞的字串不可解序列化,則傳回 FALSE,並產生一個 E_NOTICE
。
$arr=array(); $arr['name']='张三'; $arr['age']='22'; $arr['sex']='男'; $arr['phone']='123456789'; $arr['address']='上海市浦东新区'; var_dump($arr); //输出: // array(5) { // ["name"]=> string(6) "张三" // ["age"]=> string(2) "22" // ["sex"]=> string(3) "男" // ["phone"]=> string(9) "123456789" // ["address"]=> string(21) "上海市浦东新区" // } //序列化: $info=serialize($arr); var_dump($info); //输出: //string(140) "a:5:{s:4:"name";s:6:"张三";s:3:"age";s:2:"22";s:3:"sex";s:3:"男";s:5:"phone";s:9:"123456789";s:7:"address";s:21:"上海市浦东新区";}" ////////////////////////说明///////////////////////////////// //**a:5标志序列化为array包含5个键值对,s:4标志内容为字符串包含4个字符。**// $zhangsan=unserialize($info); var_dump($zhangsan); //输出: // array(5) { // ["name"]=> string(6) "张三" // ["age"]=> string(2) "22" // ["sex"]=> string(3) "男" // ["phone"]=> string(9) "123456789" // ["address"]=> string(21) "上海市浦东新区" // }
想要將已序列化的字串變回PHP的值,可使用 unserialize()。 serialize() 可處理除了 resource 之外的任何類型。甚至可以 serialize() 那些包含了指向其自身引用的陣列。你正 serialize() 的陣列/物件中的引用也將被儲存。
當序列化物件時,PHP 會試圖在序列動作之前呼叫該物件的成員函數 __sleep()。這樣就允許物件在被序列化之前做任何清除操作。類似的,當使用 unserialize() 恢復物件時, 將呼叫 __wakeup() 成員函數。
以上內容僅供參考!
推薦教學:PHP影片教學
#以上是php序列化函數的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!