serialize()和unserialize()在php手冊上的解釋是: serialize?— Generates a storable representation of a value serialize?— 產生一個可存儲的值的表示 unserialize?— Creates a PHP value from a stored representation unserialize?— 從已存儲的表示中創建 PHP 的值 其實serialize()就是將PHP中的變量如對象(object),數組(array)等等的值序列化為字符串后存儲起來.序列化的字符串我們可以存儲在其他地方如數據庫、Session、Cookie等,序列化的操作并不會丟失這些值的類型和結構。這樣這些變量的數據就可以在PHP頁面、甚至是不同PHP程序間傳遞了。 而unserialize()就是把序列化的字符串轉換回PHP的值。 這里再引用一段PHP手冊上的說明,看了上面的例子,應該很容易明白下面這些話的意思了 想要將已序列化的字符串變回 PHP 的值,可使用?unserialize()。serialize()?可處理除了?resource?之外的任何類型。甚至可以?serialize()?那些包含了指向其自身引用的數組。你正?serialize()?的數組/對象中的引用也將被存儲。 當序列化對象時,PHP 將試圖在序列動作之前調用該對象的成員函數?__sleep()。這樣就允許對象在被序列化之前做任何清除操作。類似的,當使用?unserialize()?恢復對象時, 將調用?__wakeup()?成員函數 unserialize()?對單一的已序列化的變量進行操作,將其轉換回 PHP 的值。返回的是轉換之后的值,可為integer、float、string、array?或?object。如果傳遞的字符串不可解序列化,則返回?FALSE。 margic_quotes_gpc和magic_quotes_runtime配置項的設置會影響傳遞到unserialize()中的數據。
發表評論