Учебник PHP

         

Сериализация объектов - объекты в сессиях

Примечание: в PHP 3 объекты теряют ассоциацию со своим классом в процессе сериализации и десериализации. Результирующая переменная будет объектом типа, но не имеет класса и методов, и, таким образом, будет бесполезна (она станет похожа на массив со странным синтаксисом).

Внимание!
Следующая информация верна только для PHP 4.

serialize() возвращает строку, содержащую представление в виде потока байтов любой переменной, которая может храниться в PHP.
unserialize() может использовать эту строку для воссоздания оригинальных значений переменной. Использование serialize для сохранения объекта сохранит все переменные объекта. Функции объекта не сохраняются, только имя класса.

Чтобы иметь возможность unserialize() объект, должен быть определён класс этого объекта. То есть, если у вас имеется объект $a класса A в файле page1.php и вы его сериализуете, вы получите строку, которая ссылается на класс A и содержит все значения переменных, содержащихся в $a. Если вы хотите unserialize это в файле page2.php, воссоздав $a класса A, определение класса A обязано иметься в page2.php. Это можно сделать, например, сохранив определение класса A в include-файле и подключив этот файл и в page1.php, и в page2.php.

Содержание раздела