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(). Якщо внутрішній клас не відповідає жодній із цих вимог, він не може бути надійно серіалізований за допомогою будь-якого серіалізатора.

Існує кілька історичних винятків із наведеного вище правила, коли деякі внутрішні об'єкти можуть бути серіалізовані без реалізації інтерфейсу або розкриття методів.

Дивіться також