Heim >Backend-Entwicklung >PHP-Tutorial >php – Serialisierbare Schnittstelle

php – Serialisierbare Schnittstelle

伊谢尔伦
伊谢尔伦Original
2017-03-18 11:35:411975Durchsuche

Benutzerdefinierte Serialisierungsschnittstelle.

Klassen, die diese Schnittstelle implementieren, unterstützen __sleep() und __wakeup() nicht mehr. Immer wenn eine Instanz serialisiert werden muss, wird die Methode serialize aufgerufen. Es wird weder __destruct() aufrufen noch andere Auswirkungen haben, es sei denn, diese Methode wird programmgesteuert aufgerufen. Wenn Daten deserialisiert werden, erkennt die Klasse dies und die entsprechende unserialize()-Methode wird aufgerufen, anstatt __construct() aufzurufen. Wenn Sie den Standardkonstruktor ausführen müssen, sollten Sie ihn in dieser Methode verarbeiten.

Schnittstellenzusammenfassung

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

Beispiel Nr. 1, Verwendungsbeispiel

<?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());
?>

Die Ausgabe der obigen Routine ist ähnlich wie:

string(15) "My private data"

Methodenliste

Serializable::serialize – String-Darstellung des Objekts

Serializable::unserialize – Konstruieren des Objekts

Verwandte Artikel:

Beispielcode für den Unterschied zwischen Java-Serialisierung Serialisierbar und Externalisierbar

Java-Serialisierung Serialisierbar

Java-Serialisierungsobjekt serialisierbar lesen und Daten schreiben Beispiel für

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn