我有一个包含对象的数组。我需要第一个对象的属性值,但不知何故我得到了空值。
我的数组$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;
我在这里做什么错了?
预先感谢
答案 0 :(得分:2)
好吧,正如您所说,您的数组如下所示:
Array
(
[newOrderStatus] => OrderState Object
(
[name] => Canceled
[template] => order_canceled
[send_email] => 1
...
因此没有$param[0]
,您应该执行$param['newOrderStatus']
然后得到想要的内容:$param['newOrderStatus']->name
答案 1 :(得分:1)
您的数组$params
有一个名为newOrderStatus
的键,该键具有要查找的对象作为值。
以您的示例为例,索引0为值。
要获取name属性的值,可以使用:
$params['newOrderStatus']->name
答案 2 :(得分:1)
您需要按以下方式访问对象
$params['newOrderStatus'];
在上面的对象中,您将拥有所有子对象,因此您可以按照
进行访问$params['newOrderStatus']->name;
$params['newOrderStatus']->template;
答案 3 :(得分:0)
您可以将其类型转换为以下类型:
$array = (array) $yourObject;