首頁  >  文章  >  後端開發  >  php—Serializable接口

php—Serializable接口

伊谢尔伦
伊谢尔伦原創
2017-03-18 11:35:411972瀏覽

自訂序列化的介面

實作此介面的類別將不再支援 __sleep() 和 __wakeup()。不論何時,只要有實例需要被序列化,serialize 方法都會被呼叫。它將不會呼叫 __destruct() 或有其他影響,除非程式化地呼叫此方法。當資料被反序列化時,類別將被感知並且呼叫合適的 unserialize() 方法而不是呼叫 __construct()。如果需要執行標準的構造器,你應該在這個方法中處理。

介面摘要

Serializable {
    /* 方法 */
    abstract public string serialize ( void )
    abstract public mixed unserialize ( string $serialized )
}

Example #1 使用範例

<?php
    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(15) "My private data"

方法清單

Serializ::erialerialserialize物件

相關文章:

Java序列化Serializable和Externalizable區別的範例程式碼

Java序列化之Serializable

寫程式碼

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn