Использование переменной сеанса с объектами

Я создал объект и присвоил значения следующим образом:

$ car_object = & new Car ();

$car_object->offer = 'Sale'; $car_object->type = 'Sport Car'; $car_object->location = "Buffalo, New york"; 

Как сохранить $ car_object внутри переменной сеанса? Как я могу получить $ car_object из переменной сеанса?

Установить на сеанс:

 $car_object = new Car(); $car_object->offer = 'Sale'; $car_object->type = 'Sport Car'; $car_object->location = "Buffalo, New york"; $_SESSION['car'] = $car_object; 

Получить с сессии:

 $car_object = $_SESSION['car']; echo $car_object->offer; 

Более простой способ:

 class SessionObject { public function __construct($key) { if(isset($_SESSION[$key])) { $_SESSION[$key] = array(); } $this->____data &= $_SESSION[$key]; } public function __get($key) { return isset($this->___data[$key]) ? $this->___data[$key] : null; } public function __set($key,$value) { $this->___data[$key] = $value; } } 

Тогда вы можете использовать что-то вроде этого;

 class CarSession extends SessionObject { public function __construct() { parent::__construct('car'); //name this object } /* * Custom methods for the car object */ } $Car = new CarSession(); if(!$car->type) { $Car->type = 'transit'; } 

это помогает создать более управляемую инфраструктуру для хранения объектов в сеансе.

например:

 class Currentuser extend SessionObject{} class LastUpload extend SessionObject{} class UserData extend SessionObject{} class PagesViewed extend SessionObject{} 

Сериализация объекта и его хранение в сеансах. Вот целая дискуссия об этом: PHP: сохранение «объектов» внутри $ _SESSION