Сериализация Объектов -Объекты в Сессиях
14 октября 2010 - Администратор
Рейтинг: 0
Голосов: 0
1058 просмотров
Комментарии (0)
Нет комментариев. Ваш будет первым!
| ||||||||||
|
Внимание! |
---|
Следующая информация верна только для PHP 4. |
Чтобы иметь возможность
classa.inc: class A { var $one = 1; function show_one() { echo $this->one; } } page1.php: include("classa.inc"); $a = new A; $s = serialize($a); // сохраняем $s там, где page2.php может его найти. $fp = fopen("store", "w"); fputs($fp, $s); fclose($fp); page2.php: // это необходимо для правильной работы десериализации. include("classa.inc"); $s = implode("", @file("store")); $a = unserialize($s); // теперь используем функцию show_one() объекта $a. $a->show_one(); |
Если вы используете сессии и session_register()
Настоятельно рекомендуем включать определение классов всех таких зарегистрированных объектов во все ваши страницы, даже если вы и не используете эти классы во всех ваших страницах. Если вы этого не сделаете и объект десериализуется в отсутствие определения класса, он потеряет ассоциацию с этим классом и станет объектом класса stdClass без всяких функций вообще, то есть станет практически бесполезен.
Итак, если в вышеприведённом примере $a стало частью сессии через запуск session_register("a"), вы должны включить/include файл classa.inc во все ваши страницы, а не только в page1.php и page2.php.
| ||||||
|
Нет комментариев. Ваш будет первым!