所有php裏面的值都可以使用函數serialize()來返回一個包含字節流的字符串來表示。unserialize()函數能夠重新把字符串變回php原來的值。 序列化一個對象將會保存對象的所有變量,但是不會保存對象的方法,只會保存類的名字。
序列化:serialize();
例:
$a = array('dahei','huahua','a'); $fruit = serialize($a); echo $fruit;
a:3:{i:0;s:5:"dahei";i:1;s:6:"huahau";i:2;s:1:"a";}
a:表示整體的數據類型,這裏是array;
a:3中的3:表示數組元素的個數;
i:表示int,整型;
i:0:0表示數組元素的下標;
s:表示string,即數組值的類型;
s:5:5表示數組值的長度。
注:serialize() 返回字符串,此字符串包含了表示 value 的字節流,可以存儲於任何地方。這有利於存儲或傳遞 PHP 的值,同時不丟失其類型和結構。
反序列化:unserialize();
列:
$a = array('dahei','huahua','a');
$fruit = serialize($a);
var_dump(unserialize($fruit));
array()(size=3)
0=>string 'dahei' (length=5)
1=>string 'huahua' (length=6)
2=>string 'a' (length=1)
注:unserialize() 是對單一的已序列化的變量進行操作,將其轉換回PHP 的值。