serialize
(PHP 4, PHP 5, PHP 7, PHP 8)
serialize - Генерує придатне для зберігання уявлення змінної
Опис
serialize(mixed $value): string
Генерує придатне для зберігання уявлення змінної.
Це корисно для зберігання або передачі значень PHP між скриптами без втрати їх типу та структури.
Для превращения сериализованной строки обратно в PHP-значение, используйте функциюunserialize()
Список параметрів
value
Значення, яке необхідно серіалізувати . serialize() обробляє всі типи, крім resource та деяких типів об'єкта (див. примітку нижче). Можна також серіалізувати масиви, які містять посилання на себе. Циклічні посилання всередині масиву/об'єкта, що серіалізується, також зберігаються. Будь-які інші посилання будуть втрачені.
При серіалізації об'єкта PHP намагається викликати магічні методи __serialize() або __sleep() перед серіалізацією. Це робиться для того, щоб дозволити об'єкту в останній момент провести очищення тощо перед серіалізацією. Аналогічно, коли об'єкт відновлюється функцією unserialize(), викликається магічний метод __unserialize() або __wakeup()
Зауваження :
Початок імен закритих членів об'єкта доповнюються ім'ям класу, а початок імен захищених членів символом '*'. Ці доповнені значення оточуються нульовим байтом (0x00) з обох боків.
Значення, що повертаються
Повертає рядок, що містить потокове подання змінної value
, яка може бути збережена будь-де.
Зверніть увагу, що це бінарний рядок, який може включати нульові байти, і його потрібно зберігати та обробляти відповідним чином. Наприклад, виведення функції serialize() краще зберігати у BLOB-поле бази даних, а чи не в полях типу CHAR чи TEXT.
Приклади
Приклад #1 Приклад використання serialize()****
Loading...
Примітки
Зауваження :
Зверніть увагу, що багато вбудованих PHP об'єктів не може бути серіалізовано. Однак, ті з них, які підтримують цю можливість, реалізують або інтерфейс Serializable, або магічні методи __serialize() __unserialize() або __sleep() __wakeup(). Якщо вбудований клас не відповідає цим вимогам, він не може бути надійно серіалізований.
Історично є деякі винятки з вищезгаданого правила, коли деякі внутрішні об'єкти можуть бути серіалізовані без реалізації інтерфейсу або магічних методів.
Увага
При серіалізації об'єктів функцією serialize(), провідний зворотний сліш не буде включений в ім'я класу із зазначеним простором імен для кращої зворотної сумісності.
Дивіться також
- unserialize() - Створює PHP-значення зі збереженого уявлення
- var_export() - Виводить або повертає інтерпретоване рядкове подання змінної
- json_encode() - Повертає JSON-подання даних
- Серіалізація об'єктів
- __sleep()
- __wakeup()
- __serialize()
- __unserialize()