public array __sleep ( void )php
void __wakeup ( void )web
serialize() 函數會檢查類中是否存在一個魔術方法 __sleep()。若是存在,該方法會先被調用,而後才執行序列化操做。此功能能夠用於清理對象,並返回一個包含對象中全部應被序列化的變量名稱的數組。若是該方法未返回任何內容,則 NULL
被序列化,併產生一個 E_NOTICE
級別的錯誤。數組
示例:函數
class user { public $name; public $id; function __construct() { // 給id成員賦一個uniq id $this->id = 'asas'; } function __sleep() { //此處不串行化id成員 return(array('name')); } function __wakeup() { $this->id = uniqid(); } } $u = new user(); $u->name = "Leo"; $s = serialize($u); //serialize串行化對象u,此處不串行化id屬性,id值被拋棄 $u2 = unserialize($s); //unserialize反串行化,id值被從新賦值 //對象u和u2有不一樣的id賦值 print_r($u); print_r($u2);
結果:oop
user Object ( [name] => Leo [id] => asas ) user Object ( [name] => Leo [id] => 5621ed9f6614c )this