PHP之Serializable序列表介面詳解

小云云
發布: 2023-03-21 22:10:01
原創
1293 人瀏覽過

自訂序列化的接口,需要自行實作serialize和unserialize方法。實作此介面的類別將不再支援 __sleep()和__wakeup()。不論何時,只要有實例需要被序列化,serialize方法都會被調用,它將不會被呼叫 __destruct()。當資料被反序列化時,類別將被感知並且呼叫合適的 unserialize()方法而不是呼叫__construct()。

介面摘要:

Serializable {
    /* 方法 */
    abstract public string serialize ( void )
    abstract public mixed unserialize ( string $serialized )
}
登入後複製

範例說明:

<?php
/** 
 * 自定义类的序列化操作
 * 
 * @author 疯狂老司机 
 */ 
class obj implements Serializable {
    private $data;
    public function __construct() {
        $this->data = "My private data";
    }
    public function serialize() {
        return serialize($this->data);
    }
    public function unserialize($data) {
        $this->data = unserialize($data);
    }
    public function getData() {
        return $this->data;
    }
}

$obj = new obj;
$ser = serialize($obj);
$newobj = unserialize($ser);

var_dump($newobj->getData());
?>
登入後複製

輸出:

string 'My private data'
相關推薦:

php—Serializable介面

以上是PHP之Serializable序列表介面詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板