国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - 淺談php serialize()與unserialize()的用法

淺談php serialize()與unserialize()的用法

2020-04-02 14:20PHP教程網 PHP教程

本篇文章是對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的例子來學習這兩個函數的用途

復制代碼 代碼如下:


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>';
?>


例子中的對象我們還可以換為數組等其他類型,效果都是一樣的!
其實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。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 综合在线视频 | 成人h免费观看视频 | 91在线视频在线 | 久久伊人久久 | 免费在线a | 国产精品3区 | 精品视频 | 黄色天堂 | 久久精品电影 | 91视频在线免费观看 | 人人澡人人爽 | 国产一区日韩在线 | 亚洲欧美日韩国产综合精品二区 | 综合激情网 | 久久久久无码国产精品一区 | 最近2019中文字幕大全视频10 | 黄色网页在线观看 | 日韩欧美一区二区三 | 精品视频免费观看 | 国产一区美女视频 | 欧美国产综合 | 久久机热| 国产成人精品久久二区二区 | 麻豆国产一区二区三区 | 91久久在线观看 | 亚洲狠狠爱 | 中文av一区| 欧美日韩国产精品 | 欧美激情精品久久久久久 | 久草成人 | 国产亚洲人成网站在线观看 | 亚洲精品第一 | 成人在线免费观看视频 | 国产一区二区影院 | 操久在线| 91中文在线 | 欧美综合一区二区三区 | 国产一区二区三区在线 | 天堂一区| 看国产黄色片 | 一色视频 |