Интерфейс Serializable Serializable
&reftitle.intro; Интерфейс для индивидуальной сериализации. Классы, реализующие этот интерфейс, больше не поддерживают __sleep() и __wakeup(). Метод serialize вызывается всякий раз, когда необходима сериализация экземпляру класса. Этот метод не вызывает __destruct() и не имеет никаких побочных действий кроме тех, которые запрограммированы внутри него. Когда данные десериализуются, класс известен и соответствующий метод unserialize() вызывается как конструктор вместо вызова __construct(). Если вам необходимо вызвать стандартный конструктор, вы можете это сделать в этом методе. Начиная с PHP 8.1.0, класс, который реализует Serializable без реализации __serialize() и __unserialize() выдаст предупреждение об устаревании.
&reftitle.interfacesynopsis; Serializable &Methods;
&reftitle.examples; Базовый пример реализации интерфейса 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); $newobj = unserialize($ser); var_dump($newobj->getData()); ?> ]]> &example.outputs.similar;
&language.predefined.serializable.serialize; &language.predefined.serializable.unserialize;