PHP stdClass Object,如何用0索引获取元素

时间:2015-12-28 10:49:09

标签: php stdclass

我有一个像这样的stdClass对象:

print_r($myobj);

stdClass Object(
[0] => testData
);

很明显,我无法通过$myobj->0获得价值。

为获取此值,我将对象转换为数组,但有没有任何方法可以在不转换的情况下获取?

2 个答案:

答案 0 :(得分:6)

试试这个:

$obj = new stdClass();

$obj->{0} = 1;

echo $obj->{0};

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

答案 1 :(得分:0)

首先,即使从print_r()的输出看起来该属性实际上是整数0,但事实并非如此。如果您在对象上调用var_dump(),您会看到它实际上看起来像这样:

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

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

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

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