serialize()和unserialize()在php手冊上的解釋是: serialize — Generates a storable representation of a html' target='_blank'>value serialize — 產生一個可存儲的值的表示 unserialize — Creates a PHP value from a stored representation unserialize — 從已存儲的表示中創建 PHP 的值 很顯然,"a stored representation"的解釋翻譯成了一個可存儲的值后依然很讓人非常費解它的意思。 如果語言已經無法表述清楚,那么我們可以以一個具體的PHP的例子來學習這兩個函數的用途 復制代碼 代碼如下: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-- ?php //聲明一個類 class dog { var $name; var $age; var $owner; function dog($in_name="unnamed",$in_age="0",$in_owner="unknown") { $this- name = $in_name; $this- age = $in_age; $this- owner = $in_owner; } function getage() { return ($this- age * 365); }
function getowner() { return ($this- owner); }
function getname() { return ($this- name); } } //實例化這個類 $ourfirstdog = new dog("Rover",12,"Lisa and Graham"); //用serialize函數將這個實例轉化為一個序列化的字符串 $dogdisc = serialize($ourfirstdog); print $dogdisc; //$ourfirstdog 已經序列化為字符串 O:3:"dog":3:{s:4:"name";s:5:"Rover";s:3:"age";i:12;s:5:"owner";s:15:"Lisa and Graham";} print ' BR /* ----------------------------------------------------------------------- 在這里你可以將字符串 $dogdisc 存儲到任何地方如 session,cookie,數據庫,php文件 ----------------------------------------------------------------------- */ //我們在此注銷這個類 unset($ourfirstdog); /* 還原操作 */ /* ----------------------------------------------------------------------- 在這里將字符串 $dogdisc 從你存儲的地方讀出來如 session,cookie,數據庫,php文件 ----------------------------------------------------------------------- */ //我們在這里用 unserialize() 還原已經序列化的對象 $pet = unserialize($dogdisc); //此時的 $pet 已經是前面的 $ourfirstdog 對象了 //獲得年齡和名字屬性 $old = $pet- getage(); $name = $pet- getname(); //這個類此時無需實例化可以繼續使用,而且屬性和值都是保持在序列化之前的狀態 print "Our first dog is called $name and is $old days old br print ' BR ?