不能't访问stdObject数组使用[]或->操作符


Can't access stdObject array using [] or -> operators

我有一个stdObject和它的var_dump结果如下:

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

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

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

我该怎么做?

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

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

试试这个:

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

因为$name包含

阵列(1)

说明: $name是一个对象数组。所以要访问它的值,你必须使用index和->。检查var_dump(),首先它包含一个数组,然后是对象。