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(), провідний зворотний сліш не буде включений в ім'я класу із зазначеним простором імен для кращої зворотної сумісності.

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