6

可能的重复:
将带有数字键的数组封装为对象

我做了从数组到对象的转换,我很困惑:

$arr = range(1,3);
$obj = (object) $arr;
var_dump($obj)

object(stdClass)#2 (5) {
  [0]=>
    int(1)
  [1]=>
    int(2)
  [2]=>
    int(3)
}

问题是:在这种情况下如何访问对象属性?$obj->0导致语法错误。

4

3 回答 3

4

除非您转换回数组,否则您无法访问这些对象属性。时期。如果出于某种原因必须这样做,请将数组键设置为其他值。

于 2012-04-19T20:56:56.817 回答
2

在这种情况下,我唯一能想到的是使用foreach这样的访问属性:

foreach($obj as $key => $value)
   var_dump("$key => $value");

但这当然不能解决基本问题。

于 2012-04-19T20:52:53.613 回答
1

看来 ArrayObject 类可以访问属性

$a = new ArrayObject($obj);
echo $a[0];
于 2012-04-19T21:00:44.100 回答