Я создал объект и присвоил значения следующим образом:
$ 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