Untitled Document

Учебник РНР
НазадВперёд

unserialize

(PHP 3>= 3.0.5, PHP 4)

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

Описание

mixed unserialize (string str)

unserialize() принимает одну сериализованную переменную (см. serialize()) и конвертирует её обратно в РНР-значение. Возвращается конвертированное значение, которое может быть integer, float, string, array или object.

Примечание: можно установить callback-функцийю, которая будет вызываться, если неопределённый/undefined класс должен быть инстанциирован в процессе десериализации (для предотвращения получения неполного object "__PHP_Incomplete_Class"). Используйте ваш php.ini, ini_set() или .htaccess-файл для определения 'unserialize_callback_func'. Каждый раз, когда undefined класс должен быть инстанциирован, вызывается эта установка. Для отключения этого просто сделайте эту установку пустой.

Пример 1. unserialize_callback_func
$serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}'; ini_set('unserialize_callback_func','mycallback'); 
// установить вашу callback_function function mycallback($classname) { // просто 
включите/include файл, содержащий ваше classdefinition // вы получите $classname 
для показа того, какое classdefinition необходимо }

Примечание: в PHP 3 методы не сохраняются при десериализации сериализованного объекта. В PHP 4 это ограничение устранено, и восстанавливаются как свойства, так и методы. См. дополнительно раздел Сериализация объектов в главе Классы и объекты.

Пример 2. unserialize()
// Здесь мы используем unserialize() для загрузки данных сессии в // массив 
$session_data из строки, выбранной из БД. // Этот пример использует одну из строк, 
описанных с помощью serialize(). $conn = odbc_connect ("webdb", "php", "chicken"); 
$stmt = odbc_prepare ($conn, "SELECT data FROM sessions WHERE id = ?"); $sqldata 
= array ($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(); } }

См. также serialize().


НазадОглавление Вперёд
strval Вверхunset
Физика лабы
Элементарная математика Кратные интегралы Математический анализ
Векторный анализ Аналитическая геометрия Пределы функции Изучение функции Конспекты по математике Комплексные числа Дифференциальные уравнения Определенные интегралы Лекции по высшей математике Исследование функций Вычисление объема с помощью интегралов Алгеброические структуры