请考虑以下代码段:
<?php
$obj = (object) array('1' => 'foo');
var_dump(isset($obj->{'1'})); // outputs 'bool(false)'
var_dump(key($obj)); // outputs 'int(1)'
?>
网络浏览器中上述代码的输出如下:
bool(false) int(1)
您可以从输出中看到,在将数组$obj
转换为对象后,我无法访问数组的键(即'1'
)作为对象属性,并且它具有相应的值(即'foo'
)?
如何使它们可访问?
答案 0 :(得分:-1)
这是诀窍而不是使用类型转换
$obj = array('1' => 'foo');
$obj = json_decode(json_encode($obj));
echo $obj->{'1'};
//它将输出'foo'