魔術方法 sleep 和

2022-02-15 14:39:52 字數 696 閱讀 5981

感覺序列化和反序列化用得倒是比較少了,而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 在手冊給出的乙個例子

<?php

class 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...