strval
unset
Функции для работы с переменными
PHP Manual

# unserialize

(PHP 4, PHP 5)

unserialize — Создает значение PHP из хранимого представления

### Описание

mixed unserialize ( string `$str` )

unserialize() принимает одну сериализованную переменную и конвертирует ее обратно в значение PHP.

### Список параметров

`str`

  Сериализованная строка.

  Если переменная, требующая десериализации, является объектом, после успешного восстановления объекта PHP автоматически попытается вызвать магический метод __wakeup() (если он существует).

  > Замечание: Директива unserialize_callback_func
  > Существует возможность указать функцию обратного вызова, которая будет вызвана, если в процессе десериализации должен быть проинициализирован неопределенный класс. (для предотвращения получения неполного объекта "__PHP_Incomplete_Class".) Используйте php.ini, ini_set() или .htaccess для определения функции 'unserialize_callback_func'. Каждый раз, когда должен быть проинициализирован неопределенный класс, будет вызываться эта функция. Для отключения этой возможности просто оставьте значение директивы пустым.

### Возвращаемые значения

Возвращается преобразованное значение, которое может быть одного из типов boolean, integer, float, string, array или object.

В случае, если переданная строка не поддается десериализации, возвращается `FALSE` и генерируется E_NOTICE.

### Список изменений

Версия | Описание
--- | ---
4.2.0 | Становится доступна директива unserialize_callback_func.
4.0.0 | При сериализации объекта методы больше не теряются. См. Serializing Objects для более подробной информации.

### Примеры

Пример #1 Пример использования unserialize()

`<?php
// Мы используем функцию unserialize() для загрузки сессионных данных в массив
// $session_data из строки, извлекаемой из базы данных.
// Данный пример дополняет пример, описывающий использование serialize().
$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn, "SELECT data FROM sessions WHERE id = ?");
$sqldata = array($_SERVER['PHP_AUTH_USER']);
if (!odbc_execute($stmt, &$sqldata) || !odbc_fetch_into($stmt, &$tmp)) {
// если процедура извлечения данных неудачная, то инициализируем пустой массив
$session_data = array();
} else {
// сейчас у нас должны быть сериализованные данные в $tmp[0].
$session_data = unserialize($tmp[0]);
if (!is_array($session_data)) {
// что-то пошло не так, инициализируем пустой массив
$session_data = array();
}
}
?>`

Пример #2 Пример использования unserialize_callback_func

`<?php
$serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}';
// директива unserialize_callback_func доступна в PHP с версии 4.2.0
ini_set('unserialize_callback_func', 'mycallback'); // определяем свою функцию обратного вызова
function mycallback($classname)
{
// просто подключаете файл, содержащий определение класса
// Вы получаете имя $classname для выяснения, определение какого класса требуется
}
?>`

### Примечания

Внимание

`FALSE` возвращается как в случае ошибки, так и в случае, если десериализуется сериализованное значение `FALSE`. Этот особый случай можно отловить, используя сравнение `str` со значением serialize(false), или перехватив сгенерированную ошибку E_NOTICE.

### Смотрите также

- serialize() - Генерирует пригодное для хранения представление переменной

strval
unset
Функции для работы с переменными
PHP Manual