У меня есть массив, содержащий объект. Мне нужно значение свойства первого объекта, но каким-то образом я получаю пустое значение.
Мой массив $params
(из print_r) выглядит так:
Array
(
[newOrderStatus] => OrderState Object
(
[name] => Canceled
[template] => order_canceled
[send_email] => 1
...
Вырезать здесь, есть еще два объекта в этом массиве.
Теперь, если я сделаю: echo $params[0]->name
Я получаю пустой результат.
Также попробовал print_r($params[0], true);
пустой результат.
Также пробовал, пустой результат:
$status = $params[0];
echo $status->name;
Что я здесь не так делаю?
заранее спасибо
Вам нужно получить доступ к объекту следующим образом
$params['newOrderStatus'];
В приведенном выше объекте у вас будут все дочерние объекты, чтобы вы могли получить к ним доступ, выполнив
$params['newOrderStatus']->name;
$params['newOrderStatus']->template;
Ну, как вы сказали, ваш массив выглядит так:
Array
(
[newOrderStatus] => OrderState Object
(
[name] => Canceled
[template] => order_canceled
[send_email] => 1
...
Так нет $param[0]
, ты должен сделать $param['newOrderStatus']
и тогда получите то, что вы хотите: $param['newOrderStatus']->name
Ваш массив $params
имеет ключ под названием newOrderStatus
который имеет объект в качестве значения, которое вы ищете.
Глядя на ваш пример, есть значение для индекса 0.
Чтобы получить значение свойства name, вы можете использовать:
$params['newOrderStatus']->name
Вы можете набрать приведение к массиву следующим образом:
$array = (array) $yourObject;