|
|
|
| История такая. На аяксе делаю запрос на получение параметров из другого файла, все работает, кроме строчки, где я пытаюсь получить значение свойства объекта.
echo $_SESSION['Order']->privateCustomer['name'];
|
причем, эта строчка работает, справно выводя кишки обьекта на экран:
print_r($_SESSION['Order']);
|
Надеюсь, люди знающие подскажут в чем дело?
Сессии включены, свойство объекта privateCustomer объявлена как public.
Из другого места в коде - строчка работает. | |
|
|
|
|
|
|
|
для: Zilog
(14.10.2008 в 06:06)
| | Аякс самодельный или фреймворк какой? | |
|
|
|
|
|
|
|
для: Николай2357
(14.10.2008 в 07:19)
| | фреймворк. prototype.js
хочу еще уточнить: когда писал "работает из другого места" - имел ввиду другой файл.
print_r выводит:
__PHP_Incomplete_Class Object ( [__PHP_Incomplete_Class_Name] => Order [tourists:private] => [tourists_count:private] => [hotels:private] => [hotels_count:private] => [privateCustomer:private] => Array ( [name] => Иванов Сидор Харитонович [phone] => 111-11-11 ) )
|
а вот какой print_r в рабочем месте:
Order Object ( [tourists:private] => [tourists_count:private] => [hotels:private] => [hotels_count:private] => [privateCustomer:private] => Array ( [name] => Иванов Сидор Харитонович [phone] => 111-11-11 ) )
|
вижу различия. но как заставить работать - непонмаю. | |
|
|
|
|
|
|
|
для: Zilog
(14.10.2008 в 11:38)
| | Необходимо, чтобы объявление класса, экземпляр которого передается через сессию, было выполнено раньше session_start. B противном случае десериализация превратит наш объект в экземпляр класса __PHP_Incomplete_Class.
В данном случае можно поправить ситуацию, пересоздав объект как, например, предлагается вот тут - http://shra.ru/2014/12/vosstanavlivaem-obekt-iz-sostoyaniya-__php_incomplete_class_name
Лучше, конечно, во-время подключить объявление класса. | |
|
|
|
|
|
|
|
для: Zilog
(14.10.2008 в 11:38)
| | Все правильно. В мануале написанно, что функция print_r() позволяет выводить приватные атрибуты класса.. У вас же даже справа от атрибута privateCustomer выведено :private...
Соответственно, атрибут класса вовсе не public, и поэтому вы к нему законно не можете обратиться | |
|
|
|