在数组中的对象内获取价值

时间:2018-11-08 10:28:01

标签: php arrays object prestashop

我有一个包含对象的数组。我需要第一个对象的属性值,但不知何故我得到了空值。

我的数组$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;

我在这里做什么错了?

预先感谢

4 个答案:

答案 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;