L'interface SerializableSerializable
&reftitle.intro;
Interface permettant de personnaliser la linéarisation.
Les classes implémentant cette interface ne supportent plus
__sleep() et
__wakeup().
La méthode de linéarisation est appelée chaque fois qu'une
instance doit être linéarisée. Elle n'appelle pas la méthode
__destruct() et n'a aucun effet sur le contenu de cette méthode.
Lorsque les données sont linéarisées, la classe est connue et
la méthode unserialize() appropriée est appelée comme constructeur
au lieu d'appeler __construct(). Si vous devez appeler le constructeur
standard, vous pouvez le faire dans la méthode.
À partir de PHP 8.1.0, une classe qui implémente Serializable
sans aussi implémenter __serialize()
et __unserialize() génèrera
une notice de dépréciation.
&reftitle.interfacesynopsis;
SerializableSerializable&Methods;Exemple simple
data = "Mes données privées";
}
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());
?>
]]>
&example.outputs.similar;
&language.predefined.serializable.serialize;
&language.predefined.serializable.unserialize;