无法使用[]或 - >访问stdObject数组运营商

时间:2016-11-08 11:08:39

标签: php laravel

我有一个stdObject,其var_dump结果如下:

var_dump($name)
array(1) {
  [0]=>
  object(stdClass)#853 (2) {
    ["firstname"]=>
    string(2) "John"
    ["lastname"]=>
    string(8) "Smith"
  }
}

我正在尝试使用$fullname创建一个新变量$name['firstname].$name['lastname']。它不起作用,给出错误Undefined index

然后我尝试在->上使用$name->firstname + $name->lastname运算符。给出错误:trying to get property of non-object

我该怎么做?

2 个答案:

答案 0 :(得分:3)

$name[0]->firstname . $name[0]->lastname;

基本上你试图将数组作为对象访问。您可以从var_dump看到变量包含数组。该数组包含一个具有2个属性的对象。因此$name[0]为您提供了对象,->firstname访问该对象的firstname属性。

答案 1 :(得分:1)

试试这个:

$name[0]['firstname].$name[0]['lastname'];

由于$ name包含

  

阵列(1)

在其中。

说明: $ name是一个对象数组。因此,要访问其值,您必须使用索引以及 - >。 检查var_dump(),首先它包含一个数组,然后是对象。