我有一个像这样的stdClass对象:
print_r($myobj);
stdClass Object(
[0] => testData
);
很明显,我无法通过$myobj->0
获得价值。
为获取此值,我将对象转换为数组,但有没有任何方法可以在不转换的情况下获取?
答案 0 :(得分:6)
试试这个:
$obj = new stdClass();
$obj->{0} = 1;
echo $obj->{0};
答案 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 >
您可以使用此方法访问不被视为有效语法的属性名称。