您好,登錄后才能下訂單哦!
本篇內容介紹了“php中的serialize()與unserialize()用法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
serialize()和unserialize()在php手冊上的解釋是:
serialize — Generates a storable representation of a value
serialize
— 產生一個可存儲的值的表示
unserialize — Creates a PHP value from a stored representation
unserialize
— 從已存儲的表示中創建 PHP 的值
很顯然,"a stored representation"的解釋翻譯成了一個可存儲的值后依然很讓人非常費解它的意思。
如果語言已經無法表述清楚,那么我們可以以一個具體的PHP的例子來學習這兩個函數的用途
<?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>'; ?>
例子中的對象我們還可以換為數組等其他類型,效果都是一樣的!
其實serialize()就是將PHP中的變量如對象(object),數組(array)等等的值序列化為字符串后存儲起來.序列化的字符串我們可以存儲在其他地方如數據庫、Session、Cookie等,序列化的操作并不會丟失這些值的類型和結構。這樣這些變量的數據就可以在PHP頁面、甚至是不同PHP程序間傳遞了。
“php中的serialize()與unserialize()用法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。