(PHP 4, PHP 5)
serialize — Генерирует пригодное для хранения представление переменной
Генерирует пригодное для хранения представление переменной
Это полезно для хранения или передачи значений PHP между скриптами без потери типа и структуры.
Для превращения сериализованной строки обратно в значение PHP, используйте функцию unserialize().
Значение, которое необходимо сериализовать. serialize() обрабатывает все типы, кроме типа resource. Возможно также сериализовать массивы, которые содержат ссылки на себя. Циклические ссылки внутри массива/объекта, который необходимо сериализовать, также сохраняются. Любые другие ссылки будут потеряны.
При сериализации объекта PHP пытается вызвать магический метод __sleep перед сериализацией. Это делается для того, чтобы позволить объекту в последний момент произвести очистку, и т.д. перед сериализацией. Так же, когда объект восстанавливается с использованием unserialize(), вызывается магический метод __wakeup.
Возвращает строку, содержащую потоковое представление переменной value, которая может быть сохранена где угодно.
Пример #1 Пример использования serialize()
<?php
// $session_data содержит многомерный массив с сессионной
// информацией о текущем пользователе. Мы используем serialize() для сохранения
// этой информации в базе данных в конце запроса.
$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn,
"UPDATE sessions SET data = ? WHERE id = ?");
$sqldata = array (serialize($session_data), $_SERVER['PHP_AUTH_USER']);
if (!odbc_execute($stmt, &$sqldata)) {
$stmt = odbc_prepare($conn,
"INSERT INTO sessions (id, data) VALUES(?, ?)");
if (!odbc_execute($stmt, &$sqldata)) {
/* Код, выполняемый при ошибке.. */
}
}
?>
Версия | Описание |
---|---|
4.0.7 | Был исправлен процесс сериализации объектов. |
4.0.0 | При сериализации объекта методы теперь не теряются. См. Serializing Objects для более подробной информации. |
Замечание:
Невозможно сериализовать встроенные объекты PHP.