php - シリアル化可能なインターフェイス

伊谢尔伦
リリース: 2023-03-01 09:20:01
オリジナル
1918 人が閲覧しました

カスタマイズされたシリアル化インターフェース

このインターフェースを実装するクラスは、__sleep() と __wakeup() をサポートしなくなります。インスタンスをシリアル化する必要がある場合は、serialize メソッドが呼び出されます。このメソッドがプログラムで呼び出されない限り、__destruct() を呼び出したり、他の効果をもたらしたりすることはありません。データが逆シリアル化されると、クラスはそれを認識し、__construct() を呼び出す代わりに適切な unserialize() メソッドを呼び出します。標準コンストラクターを実行する必要がある場合は、このメソッドで処理する必要があります。

インターフェイスの概要

Serializable {
    /* 方法 */
    abstract public string serialize ( void )
    abstract public mixed unserialize ( string $serialized )
}
ログイン後にコピー

例 #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"
ログイン後にコピー

Method List

Serializable::serialize — オブジェクトの文字列表現

Serializable::unserialize — Construct Object

関連記事:

Javaシリアル化におけるSerializableとExternalizableの違いのサンプルコード

SerializableのJavaシリアル化

java Serializationオブジェクトserializableデータの読み書きの例

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!