как отобразить значение объекта в массиве

subscription
Object {id: "3", type: "all", name: "Order Payment Status Fully Paid", category_id: "-1", admin_contact_selector: "admin-1"…}
admin_contact: Object
admin_contact_selector: "admin-1"
category: Object
display: "flight: [All]"
id: "-1"
product_type: "flight"
__proto__: Object
category_id: "-1"
id: "3"
name: "Order Payment Status Fully Paid"
type: "all"
__proto__: Object

У меня есть объект подписки со значением идентификатора. Я хочу отобразить значение display в объекте категории.

print "<pre>";
var_dump($subscription['category']['dispaly']);
print "</pre>";
?>

возвращаемое значение моей проблемы равно нулю, реальное значение - полет: [Все]

Большое спасибо


person cyberoot    schedule 18.02.2014    source источник
comment
у вас опечатка должна отображаться   -  person Andrei Cristian Prodan    schedule 18.02.2014
comment
вы пытаетесь получить доступ к объекту.... Итак, вам нужно получить к нему доступ следующим образом echo $subscription->category->display; Если вы хотите получить к нему доступ как к массиву, вам нужно получить результаты БД, используя ->result_array(); или ->row_array(); вместо использования ->row() ‹-- предполагая ofc что вы используете результаты БД :)   -  person mic    schedule 18.02.2014
comment
Да, братан, я использую неправильное написание.   -  person cyberoot    schedule 18.02.2014


Ответы (2)


Должно быть как..

echo $subscription->category->display;

Это потому, что вы обращаетесь к объектам и вам нужно использовать оператор ->. Вы получили null по двум причинам

  • Во-первых, вы обращались к объектам как к массивам.
  • Во-вторых, у вас опечатка. Даже если бы это было правильно, это все равно отображало бы null, поскольку ваше первое условие не выполняется.
person Shankar Narayana Damodaran    schedule 18.02.2014

Используйте функцию (array) variable-transfor, предоставляемую PHP. Например, если $user является вашим объектом, то $userArray = (array) $user, $userArray будет содержать формат массива пользовательского объекта. Доступ к каждому свойству пользовательского объекта теперь можно получить просто с помощью $userArray['PROPERTYNAME']. Не используйте это, когда ваш объект содержит методы.

person user3227262    schedule 18.02.2014
comment
это нормально, но это не применяется рекурсивно, что может быть проблемой при работе с вложенными объектами. - person mic; 18.02.2014