我从数组到对象进行了一次转换,我很困惑:
$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
会导致语法错误。
答案 0 :(得分:4)
除非转换回数组,否则无法访问这些对象属性。期。如果由于某种原因必须这样做,请将数组键设置为其他内容。
答案 1 :(得分:2)
在这种情况下,我唯一能想到的就是使用这样的foreach
来访问属性:
foreach($obj as $key => $value)
var_dump("$key => $value");
但当然这不会解决基本问题。
答案 2 :(得分:1)
似乎ArrayObject类可以访问属性
$a = new ArrayObject($obj);
echo $a[0];