我试着按键得到数组中的一个项。这个数组实际上是一个SolrObject,它实现了ArrayAccess,因此我理解我可以像在数组中那样访问它的项。
这是我的$myobject的结构:
SolrObject Object
(
[116809] => SolrObject Object
(
[title] => Array
(
[0] => First value
)
[description] => Array
(
[0] => Second value
)
)
[591978] => SolrObject Object
(
[title] => Array
(
[0] => Third value
)
[description] => Array
(
[0] => Forth value
)
)
)所以,如果我尝试
var_dump($myobject[116809]);我得到的是零。
但如果我试着
echo array_key_exists(116809, $myobject);我得到了1
如果我尝试使用foreach迭代$myobject,我可以正确地访问它的元素。
为什么我不能通过它的键直接访问一个元素?
编辑:应答@ircmaxell,这是var_dump:
object(SolrObject)#219 (50) {
[116809]=>
object(SolrObject)#220 (2) {
["title"]=>
array(1) {
[0]=>
string(43) "First value"
}
["description"]=>
array(1) {
[0]=>
string(82) "Second value"
}
}
[591978]=>
object(SolrObject)#221 (2) {
["title"]=>
array(1) {
[0]=>
string(104) "Third value"
}
["description"]=>
array(1) {
[0]=>
string(95) "Fourth value"
}
}
}这是var_dump($myobject->getPropertyNames())的结果;
array(2) {
[0]=>
string(0) ""
[1]=>
string(0) ""
}发布于 2012-01-18 10:52:11
我认为这是PHP扩展的一个bug。
发布于 2011-04-05 20:44:51
您可能没有正确地实现ArrayAccess方法。
https://stackoverflow.com/questions/4033398
复制相似问题