PHP 8.4.2 Released!

igbinary_unserialize

(PECL igbinary >= 1.1.1)

igbinary_unserialize Создаёт значение PHP из сохранённого функцией igbinary_serialize() представления

Описание

igbinary_unserialize(string $str): mixed

Функция 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.

Примечания

Внимание

Значение null или false возвращается как при ошибке, так и при десериализации сериализованного значения null или false. Этот особый случай можно определить, сравнивstr с igbinary_serialize(null) или igbinary_serialize(false) или обработав выданную ошибку уровня E_NOTICE.

Смотрите также

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top