可能的重复:
将带有数字键的数组封装为对象
我做了从数组到对象的转换,我很困惑:
$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
导致语法错误。
可能的重复:
将带有数字键的数组封装为对象
我做了从数组到对象的转换,我很困惑:
$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
导致语法错误。
除非您转换回数组,否则您无法访问这些对象属性。时期。如果出于某种原因必须这样做,请将数组键设置为其他值。
在这种情况下,我唯一能想到的是使用foreach
这样的访问属性:
foreach($obj as $key => $value)
var_dump("$key => $value");
但这当然不能解决基本问题。
看来 ArrayObject 类可以访问属性
$a = new ArrayObject($obj);
echo $a[0];