php—Serializable接口

伊谢尔伦
發布: 2023-03-01 09:20:01
原創
1919 人瀏覽過

自訂序列化的介面

實作此介面的類別將不再支援 __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

寫程式碼

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!