感覺序列化和反序列化用得倒是比較少了,而json_encode和json_decode用得相對多,都是轉化成串,進行入庫、傳輸等。json更方便,但是序列化和反序列化結合這兩個魔術方法使用倒還行<?php
/** * 魔術方法__sleep() 和 __wakeup()
* __sleep(): serialize()序列化之前呼叫,返回乙個需要儲存變數名陣列。一般用來儲存部分屬性,節省空間
* __wakeup():unserialize() 反序列化之前呼叫,無返回值,一般進行乙個動作
*/class test
public function __wakeup()
}$m = new test();
$n = serialize($m);
$m = unserialize($m);
var_dump($m);
?>
下面看 __sleep __wakeup 在手冊給出的乙個例子
<?phpclass connection
private function connect()
public function __sleep()
public function __wakeup()
}?>
PHP魔術方法 sleep和
serialize 函式會檢查類中是否存在乙個魔術方法 sleep 如果存在,該方法會先被呼叫,然後才執行序列化操作。此功能可以用於清理物件,並返回乙個包含物件中所有應被序列化的變數名稱的陣列。如果該方法未返回任何內容,則 null 被序列化,並產生乙個 e notice 級別的錯誤。sleep 不...
PHP魔術方法和魔術常量
具體的解釋如下 1。construct 例項化物件時被呼叫,當 construct和以類名為函式名的函式同時存在時,construct將被呼叫,另乙個不被呼叫。2。destruct 當刪除乙個物件或物件操作終止時被呼叫。3。call 物件呼叫某個方法,若方法存在,則直接呼叫 若不存在,則會去呼叫 c...
PHP魔術方法和魔術常量
具體的解釋如下 1。construct 例項化物件時被呼叫,當 construct和以類名為函式名的函式同時存在時,construct將被呼叫,另乙個不被呼叫。2。destruct 當刪除乙個物件或物件操作終止時被呼叫。3。call 物件呼叫某個方法,若方法存在,則直接呼叫 若不存在,則會去呼叫 c...