La interfaz Serializable

(PHP 5 >= 5.1.0, PHP 7)

Introducción

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.

Sinopsis de la Interfaz

Serializable {
/* Métodos */
abstract public serialize ( void ) : string
abstract public unserialize ( string $serialized ) : void
}

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"

Tabla de contenidos