(PHP 5 >= 5.1.0, PHP 7)
Interfaz para personalizar la serialización.
Las clases que implementan esta interfaz ya no admiten __sleep() ni __wakeup(). El método serialize se llama cuando una instancia requiere ser serializada. Esto no invoca a __destruct() ni tiene ningún efecto adicional a menos que se programe dentro del método. Cuando los datos son deserializados, la clase es conocida y se llama al correspondiente método unserialize() como constructor en lugar de llamar al método __construct(). Se puede ejecutar el constructor estándar en el método si fuera necesario.
Ejemplo #1 Uso básico
<?php
class obj implements Serializable {
private $datos;
public function __construct() {
$this->datos = "Mis datos privados";
}
public function serialize() {
return serialize($this->datos);
}
public function unserialize($datos) {
$this->datos = unserialize($datos);
}
public function getDatos() {
return $this->datos;
}
}
$obj = new obj;
$ser = serialize($obj);
var_dump($ser);
$obj_nuevo = unserialize($ser);
var_dump($obj_nuevo->getDatos());
?>
El resultado del ejemplo sería algo similar a:
string(38) "C:3:"obj":23:{s:15:"Mis datos privados";}" string(15) "Mis datos privados"