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