(PHP 5 >= 5.1.0, PHP 7)
Interface für benutzerdefiniertes Serialisieren.
Klassen, die dieses Interface implementieren, unterstützen __sleep und __wakeup nicht mehr. Die Methode serialize wird immer aufgerufen, wenn eine Instanz serialisiert werden muss. Dabei wird weder __destruct() aufgerufen noch irgend ein anderer Seiteneffekt erzeugt, es sei denn, ein solcher wird in der Methode serialize explizit erzeugt. Wenn die Daten deserialisiert werden, ist die Klasse bekannt und die passende unserialize()-Methode wird anstelle des Konstruktors __construct() aufgerufen. Falls notwendig, kann der Standardkonstruktor innerhalb von unserialize() aufgerufen werden.
Beispiel #1 Basisnutzung
<?php
class obj implements Serializable {
private $data;
public function __construct() {
$this->data = "Meine private-Daten";
}
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);
var_dump($ser);
$newobj = unserialize($ser);
var_dump($newobj->getData());
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
string(42) "C:3:"obj":27:{s:19:"Meine private-Daten";}" string(15) "Meine private-Daten"