(PECL igbinary >= 1.1.1)
igbinary_unserialize — Создаёт значение PHP из сохранённого функцией igbinary_serialize() представления
Функция igbinary_unserialize() берёт одну сериализованную переменную из функции igbinary_serialize() и преобразовывает её обратно в PHP-значение.
Нельзя передавать в функцию igbinary_unserialize() ненадёжные пользовательские входные данные. При десериализации инстанцируются объекты и автоматически загружаются классы, что ведёт к риску загрузки и выполнения кода, чем пользуются злоумышленники. Вместо этого пользуются безопасным стандартным форматом обмена данными наподобие JSON, который обрабатывают функциями json_decode() и json_encode(), если сериализованные данные требуется передать клиенту.
Сериализованные данные внешнего хранилища проверяют функцией hash_hmac(), если требуется десериализовать такие данные. Важно убедиться, что никто не подделал данные.
Формат сериализации модуля igbinary не различает разные ссылочные группы для одного и того же значения. Каждая PHP-ссылка на заданное значение при десериализации обрабатывается как часть одной и той же группы ссылок, даже если при сериализации ссылка была частью разных групп ссылок.
str
Строка, которую сериализовали функцией igbinary_serialize().
После успешного восстановления объекта модуль igbinary автоматически попытается вызвать методы __unserialize() или __wakeup(), если десериализуемое значение — объект (object) и методы определили в классе.
Замечание: Директива unserialize_callback_func
Callback-функция, которую указали в директиве unserialize_callback_func, вызывается при десериализации неопределённого класса. PHP создаст объект __PHP_Incomplete_Class, если callback-функцию не указали.
Функция возвращает преобразованное значение с типом bool, int, float, string, array, object или null.
Функция возвращает false
и выдаёт
ошибку уровня E_NOTICE
или E_WARNING
,
если заданную строку невозможно десериализовать.
Иногда в своих обработчиках десериализации объекты выбрасывают исключение Throwable.