Как можно сериализовать подобъекты в $ _SESSION? Вот пример того, что я пытаюсь:
arraytest.php:
<?php
class ArrayTest {
private $array1 = array();
public function __construct(){
$this->array1[] = 'poodle';
}
public function getarray(){
return $this->array1;
}
}
class DoDoDo {
public $poop;
public function __construct(){
$poop = new ArrayTest();
}
public function foo()
{echo 'bar';}
}
?>
Страница 1:
<?php
require_once('arraytest.php');
session_start();
$bob = new DoDoDo();
$_SESSION['bob'] = serialize($bob);
?>
Страница 2:
<?php
require_once('arraytest.php');
session_start();
$bob = unserialize($_SESSION['bob']);
$bob->foo();
print_r($bob->poop->getarray()); // This generates an error.
?>
Каким-то образом, когда я десериализую объект, экземпляр ArrayTest
, назначенный свойству $poop
объектов на странице 1, больше не существует, о чем свидетельствует тот факт, что страница 2 генерирует фатальную ошибку в отмеченной строке:
Неустранимая ошибка: вызов функции-члена getarray () для необъекта в строке 6