PHP stdClass 对象,如何获取索引为 0 的元素

PHP stdClass Object, how to get element with the 0 index

我有一个这样的 stdClass 对象:

print_r($myobj);

stdClass Object(
[0] => testData
);

所以很明显我无法通过$myobj->0获取值。

为了获取这个值,我将对象转换为数组,但是有没有不转换就可以获取的方法?

试试这个:

$obj = new stdClass();

$obj->{0} = 1;

echo $obj->{0};

来源:http://php.net/manual/en/language.types.object.php

所以首先,即使 print_r() 的输出显示 属性 确实是整数 0,但事实并非如此。如果你改为在对象上调用 var_dump(),你会看到,事实上,它看起来像这样:

php > var_dump($myobject);
object(stdClass)#2 (1) {
  ["0"]=>
  string(4) "testData"
}

那么当 PHP 不允许您访问 $myobject->0 时,您如何访问名为 0 的 属性?使用特殊的 Complex (curly) syntax:

php > echo $myobject->{0};
test
php > echo $myobject->{'0'};
test
php >

您可以使用此方法访问 属性 个不被视为有效语法的名称。