PHP物件導向4 序列化

2021-08-09 19:27:27 字數 1372 閱讀 6037

序列化 (serialization):將物件的狀態資訊轉換為可以儲存傳輸的形式的過程。

警告:各種語言所採用的序列化機制往往不一樣,不相容。

string serialize ( mixed $value )

serialize() 返回字串,此字串包含了表示 value 的位元組流,同時不丟失其型別和結構。

serialize() 可處理除了 resource 之外的任何型別。甚至可以 serialize() 那些包含了指向其自身引用的陣列。

當序列化物件時,php 將試圖在序列動作之前呼叫該物件的成員函式 __sleep()。這樣就允許物件在被序列化之前做任何清除操作。

mixed unserialize ( string $str )

想要將已序列化的字串變回 php 的值,可使用 unserialize()。

當使用 unserialize() 恢復物件時, 將呼叫 __wakeup() 成員函式。

如果要想在另外乙個檔案中反序列化乙個物件,必須要在反序列化之前定義這個物件的類。

// 未定義物件的類時,如果反序列化,會得到下面的__php_incomplete_class物件,不含方法。

__php_incomplete_class object

( [__php_incomplete_class_name] => person

[name:person:private] => jack

[age:person:private] => 18

[***:person:private] => m

)

<?php

class

person

function

__sleep

() function

__wakeup

() function

say()

}$p = new person('jack', 18, 'm');

$p->say(); // my name is: jack,my age is: 18,my *** is: m

$s = serialize($p); //得到(o:6:"person":3:)字串,有特殊字元

echo

$s . php_eol;

$o = unserialize($s); // 反序列化之前必須要定義這個物件的類

$o->say(); // my name is: jack,my age is: 20,my *** is: f

PHP物件導向04 序列化

oop04複習 2014 9 3 10 48 45 要點 1 轉殖物件 2 tostring 3 call 4 自動載入類 5 物件序列化 1 轉殖物件以及 clone 方法 概述 物件屬於引用型別,普通的 號屬於引用賦值 有時可能需要根據乙個物件完全轉殖出乙個一模一樣的物件,而且轉殖以後,兩個物件...

PHP物件導向04 序列化

oop04複習 2014 9 3 10 48 45 要點 1 轉殖物件 2 tostring 3 call 4 自動載入類 5 物件序列化 1 轉殖物件以及 clone 方法 概述 物件屬於引用型別,普通的 號屬於引用賦值 有時可能需要根據乙個物件完全轉殖出乙個一模一樣的物件,而且轉殖以後,兩個物件...

php物件導向 OOP 把物件序列化

有時候需要把乙個物件在網路上傳輸,為了方便傳輸,可以把整個物件轉化為二進位制串,等到達另一端時,再還原為原來的物件,這個過程稱之為序列化,就像我們現在想把一輛汽車通過輪船運到美國去,因為汽車的體積比較大,我們可以把汽車拆開成小的部件,然後我們把這些部件通過輪般運到美國去,到了美國再把這些部件組裝回汽...