igbinary_serialize
(PECL igbinary >= 1.1.1)
igbinary_serialize — Створює компактне, двійкове уявлення значення, що зберігається.
Опис
igbinary_serialize(mixed $value): string|false
Створює значення, що зберігається.
Корисно для зберігання або передачі значень PHP без втрати їх типу та структури.
Щоб знову перетворити серіалізований рядок на значення PHP, можна використовувати igbinary_unserialize()
Список параметрів
value
Значення, яке необхідно серіалізувати . igbinary_serialize() обробляє всі типи, крім ресурсів (resource) та деяких об'єктів (object) (див. примітку нижче). Навіть масиви (array), що містять посилання на себе, можуть бути серіалізовані функцією igbinary_serialize(). Циклічні посилання всередині масивів (array) або об'єктів (object), що серіалізуються, також будуть збережені. Будь-яке інше посилання буде втрачено.
При серіалізації об'єктів, igbinary намагатиметься викликати функції __serialize() або __sleep() перед серіалізацією. Це дозволить об'єкту виконати будь-яку очистку в останню хвилину тощо. перед серіалізацією. Аналогічно, коли об'єкт відновлюється за допомогою igbinary_unserialize(), викликається функція __unserialize() або __wakeup()
Зауваження :
Початок імен закритих членів об'єкта (object) доповнюються ім'ям класу, а початок імен захищених членів символом
'*'
. Ці доповнені значення оточуються нульовим байтом з обох боків.
Значення, що повертаються
Возвращает строку, содержащую представление потока байтовvalue
, яке може бути збережене будь-де.
Зверніть увагу, що це двійковий рядок, який може включати будь-яке байтове значення і повинен зберігатися і оброблятися як такий. Наприклад, виведення функції igbinary_serialize() зазвичай повинен зберігатися у полі бази даних BLOB
, а не в полеCHAR
илиTEXT
Приклади
Приклад #1 Приклад використання igbinary_serialize()****
Loading...
Результат виконання наведеного прикладу:
%00%00%00%02%14%02%06%00%11%04test%06%01%0E%00
array (
0 => 'test',
1 => 'test',
)
Примітки
Зауваження :
Зверніть увагу, що багато вбудованих об'єктів PHP не можуть бути серіалізовані. Однак ті, хто має таку можливість, реалізують або інтерфейс Serializable, або магічні методи __serialize() __unserialize() або __sleep() __wakeup(). Якщо внутрішній клас не відповідає жодній із цих вимог, він не може бути надійно серіалізований за допомогою будь-якого серіалізатора.
Існує кілька історичних винятків із наведеного вище правила, коли деякі внутрішні об'єкти можуть бути серіалізовані без реалізації інтерфейсу або розкриття методів.
Дивіться також
- serialize() - Генерує придатне для зберігання уявлення змінної
- igbinary_unserialize() - Створює значення PHP із збереженого уявлення функцією igbinary_serialize
- var_export() - Виводить або повертає інтерпретоване рядкове подання змінної
- json_encode() - Повертає JSON-подання даних
- Серіалізація об'єктів
- __sleep()
- __wakeup()
- __serialize()
- __unserialize()