PHP L'interface sérialisable


Exemple

introduction

Les classes qui implémentent cette interface ne prennent plus en charge __sleep() et __wakeup() . La méthode serialize est appelée chaque fois qu'une instance doit être sérialisée. Cela n'invoque pas __destruct() ou n'a aucun autre effet secondaire, sauf si programmé dans la méthode. Lorsque les données sont unserialized la classe est connue et appropriée unserialize() méthode est appelée en tant que constructeur au lieu d'appeler __construct() . Si vous devez exécuter le constructeur standard, vous pouvez le faire dans la méthode.

Utilisation de base

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

var_dump($ser); // Output: string(38) "C:3:"obj":23:{s:15:"My private data";}"

$newobj = unserialize($ser);

var_dump($newobj->getData()); // Output: string(15) "My private data"