PHP物件序列化和反序列化

2021-09-25 17:34:26 字數 1513 閱讀 9525

序列化

final class db

//填寫需要序列化的屬性,不寫此方法的話,序列化全部屬性

public function __sleep()

private function connectdb()

}$arr = [

'db_host'=>'localhost',

'db_user'=>'root',

'db_pass'=>'root',

]; $obj = new db($arr);

//進行序列化

$str = serialize($obj);

//var_dump($str);//o:2:"db":1:

//存到3.txt中

file_put_contents("3.txt", $str);

3.txt 直接開啟顯示:㩏㨲䐢≢ㄺ箋㩳ㄱ∺䐀b扤桟獯≴猻㤺∺潬慣桬獯≴紻

用sublime開啟顯示:

4f3a 323a 2244 6222 3a31 3a7b 733a 3131

3a22 0044 6200 6462 5f68 6f73 7422 3b73

3a39 3a22 6c6f 6361 6c68 6f73 7422 3b7d

反序列化物件:

final class db

public function __wakeup()

private function connectdb()

}$arr = [

'db_host'=>'localhost',

'db_user'=>'root',

'db_pass'=>'root',

];$str = file_get_contents('3.txt');

$a = unserialize($str);

var_dump($a);

如果沒有weakup()結果是:

object(db)[1]

private 'db_host' => string 'localhost'

(length=9)

private 'db_user' =>

null

private 'db_pass' =>

null有weakup()結果是:

object(db)[1]

private 'db_host' => string 'localhost'

(length=9)

private 'db_user' => string 'root'

(length=4)

private 'db_pass' => string 'root'

(length=4)

成功的重新構造物件後呼叫__weakup(){}

unseralize()方法呼叫前,首先看看有沒有weekup()函式,有的話進行呼叫。

物件序列化和反序列化

物件序列化有很多方式,在這裡我只講用xml序列化,我們從開始序列化講起,首先,你要在需要被序列化的類前面寫上 serializable 表示該類的例項可以被序列化,其次在要執行序列化的 去中寫入using system.xml.serialization xml序列化必須的 using system...

物件序列化和反序列化

c 提供三種序列化的方法,與此有關的三個類分別是 binaryserialize soapserialize xmlserialize 以二進位制的序列化和反序列化為例,先建立乙個實體類product。1 serializable 2public class product316 17public ...

php序列化和反序列化

把複雜的資料型別壓縮到乙個字串中 serialize 把變數和它們的值編碼成文字形式 unserialize 恢復原先變數 1.建立乙個 arr陣列用於儲存使用者基本資訊,並在瀏覽器中輸出檢視結果 arr array arr name 張三 arr age 22 arr 男 arr phone 12...