PHP魔術方法 sleep和

2021-08-03 10:32:17 字數 642 閱讀 3487

serialize() 函式會檢查類中是否存在乙個魔術方法 __sleep()。如果存在,該方法會先被呼叫,然後才執行序列化操作。此功能可以用於清理物件,並返回乙個包含物件中所有應被序列化的變數名稱的陣列。如果該方法未返回任何內容,則 null 被序列化,並產生乙個 e_notice 級別的錯誤。__sleep() 不能返回父類的私有成員的名字。這樣做會產生乙個 e_notice 級別的錯誤。可以用 serializable 介面來替代。 __sleep() 方法常用於提交未提交的資料,或類似的清理操作。同時,如果有一些很大的物件,但不需要全部儲存,這個功能就很好用。unserialize() 會檢查是否存在乙個 __wakeup() 方法。如果存在,則會先呼叫 __wakeup 方法,預先準備物件需要的資源。__wakeup() 經常用在反序列化操作中,例如重新建立資料庫連線,或執行其它初始化操作。

<?php

class

connection

public

function

connect

() public

function

__sleep

() public

function

__wakeup

()}

魔術方法 sleep 和

感覺序列化和反序列化用得倒是比較少了,而json encode和json decode用得相對多,都是轉化成串,進行入庫 傳輸等。json更方便,但是序列化和反序列化結合這兩個魔術方法使用倒還行 魔術方法 sleep 和 wakeup sleep serialize 序列化之前呼叫,返回乙個需要儲存...

PHP魔術方法和魔術常量

具體的解釋如下 1。construct 例項化物件時被呼叫,當 construct和以類名為函式名的函式同時存在時,construct將被呼叫,另乙個不被呼叫。2。destruct 當刪除乙個物件或物件操作終止時被呼叫。3。call 物件呼叫某個方法,若方法存在,則直接呼叫 若不存在,則會去呼叫 c...

PHP魔術方法和魔術常量

具體的解釋如下 1。construct 例項化物件時被呼叫,當 construct和以類名為函式名的函式同時存在時,construct將被呼叫,另乙個不被呼叫。2。destruct 當刪除乙個物件或物件操作終止時被呼叫。3。call 物件呼叫某個方法,若方法存在,則直接呼叫 若不存在,則會去呼叫 c...