PHP中的序列化

2021-04-17 00:14:53 字數 511 閱讀 7084

php中的序列化

在php中,會話(session)將自動地通過序列化儲存和恢復物件。

在需要的時候,我們也可以手動serialize()和unserialize()函式手動對某個物件進行序列化,格式如下:

$ecoded = serialize(something);

$something = unserialize(encoded);

php中存在兩個序列化鉤子:

__sleep():用於在乙個物件被序列化之前被呼叫,它能執行一些必要的清理工作,以儲存物件的狀態,例如:關閉資料庫連線、寫出沒被

儲存的永續性資料等等。它返回乙個陣列,其中包含那些需要寫入位元組流的資料成員的名稱。如果返回了乙個空陣列,則不寫任何資料。

__walkup():相反,在乙個物件從位元組流中被建立時被立即呼叫__walkup方法,這個方法將執行一些必需的動作。例如:重新連線資料庫或

其它的初始化工作。

如果類中未定義這兩個鉤子方法,物件仍可以被序列化,但它們不會被告知序列化的過程。

PHP序列化 序列化

將物件序列號 當需要將物件長久儲存時或用於網路傳輸等.將物件序列號成字串儲存 class demo 魔術方式,當物件序列號時自動呼叫,此時會序列號陣列中的屬性.如果沒有該方法,則序列號所有屬性 function sleep 當物件返序列化時自動呼叫,此時會初始化返序列化後物件中該方法中的屬性 fun...

php中序列化與反序列化

把複雜的資料型別壓縮到乙個字串中 serialize 把變數和它們的值編碼成文字形式 unserialize 恢復原先變數 eg stooges array moe larry curly new serialize stooges print r new echo print r unserial...

php中序列化與反序列化

把複雜的資料型別壓縮到乙個字串中 serialize 把變數和它們的值編碼成文字形式 unserialize 恢復原先變數 eg stooges array moe larry curly new serialize stooges print r new echo print r unserial...