Интерфейс SerializableSerializable
&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;