首頁  >  文章  >  後端開發  >  PHP序列化與反序列化詳解

PHP序列化與反序列化詳解

小云云
小云云原創
2018-03-31 09:56:242912瀏覽

所謂序列化,就是將一個變數的資料轉換為字串(但是與型別轉換不同)。其目的是將該字串儲存起來(存為文字檔案),當在其他環境上運行時,可以透過反序列化,將其回應。 (一般用在資料需要儲存的地方)

序列化:

    $str=serialize($變數)//將資料轉換為字串,並存入變數$ str。

    file_put_conetents("文字檔案路徑",$str);//將檔案存在文字檔案中。

反序列化:

    $str=file_get_contents("文字檔案路徑");//取得檔案中儲存的序列化的資訊。

    $value=unserialize($str);//將取出的字串內容轉換為正常的資料存入$value 中。

序列化與反序列化時的魔術方法:

    __sleep():在對某個類別的物件進行序列化的時候,會自動呼叫該類別中的__sleep()方法;

                            使用此方式以對需求進行序列化的資料進行選取,並存入與陣列中所需的屬性,此陣列將傳回數組的值就是要序列化的東西。

    __wakeup():與__sleep()正好相反,在反序列化的時候調用,可以進行一些有用的操作,以使得狀態回到序列化之前的狀態(如數據庫連接)。因為序列化只是將需要的屬性變成字串儲存起來,反序列化也只是將字串變回數據,但是一些狀態並沒有返回到之前的狀態,此時就可以透過__wakeup()來進行操作,回到與之前完全相同的狀態。

相關推薦:

PHP序列化與反序列化原理詳解

應用PHP序列化陣列技巧_PHP教學

詳解PHP序列化反序列化的方法,詳解php序列化反_PHP教學

#

以上是PHP序列化與反序列化詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn