我們大家有知道PHP串行化可以把變量包括對象,轉化成連續bytes數據,你可以將串行化後的變量存在一個文件裡或在網絡上傳輸,然後再反串行化還原為原來的數據。文章這裡就PHP串行化為大家詳細的介紹。你在反串行化類的對象之前定義的類,PHP可以成功地存儲其對象的屬性和方法. 有時你可能需要一個對象在反串行化後立即執行。為了這樣的目的,PHP會自動尋找__sleep和__wakeup方法。
- Listing1 Object serialization
- class User
- {
- public $name;
- public $id;
- function __construct()
- {
- //give user a unique ID 賦予一個不同的ID
- $this->id = uniqid();
- }
- function __sleep()
- {
- //do not serialize this->id 不串行化id
- return(array("name"));
- }
- function __wakeup()
- {
- //give user a unique ID
- $this->id = uniqid();
- }
- }
- //create object 建立一個對象
- $u = new User;
- $u->name = "Leon";
- //serialize it 串行化 注意不串行化id屬性,id的值被拋棄
- $s = serialize($u);
- //unserialize it 反串行化 id被重新賦值
- $u2 = unserialize($s);
- //$u and $u2 have different IDs $u和$u2有不同的ID
- print_r($u);
- print_r($u2);
- ?>