可能是重复问题:
将带有数字键的数组转化为对象
我对从数组到对象的转换感到困惑了:
$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];
$obj->{0}
也失败了? - halfer