首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >直接访问ArrayAccess项

直接访问ArrayAccess项
EN

Stack Overflow用户
提问于 2010-10-27 12:53:26
回答 2查看 186关注 0票数 2

我试着按键得到数组中的一个项。这个数组实际上是一个SolrObject,它实现了ArrayAccess,因此我理解我可以像在数组中那样访问它的项。

这是我的$myobject的结构:

代码语言:javascript
复制
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
        )
    )
)

所以,如果我尝试

代码语言:javascript
复制
var_dump($myobject[116809]);

我得到的是零。

但如果我试着

代码语言:javascript
复制
echo array_key_exists(116809, $myobject);

我得到了1

如果我尝试使用foreach迭代$myobject,我可以正确地访问它的元素。

为什么我不能通过它的键直接访问一个元素?

编辑:应答@ircmaxell,这是var_dump:

代码语言:javascript
复制
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())的结果;

代码语言:javascript
复制
array(2) {
  [0]=>
  string(0) ""
  [1]=>
  string(0) ""
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-18 10:52:11

我认为这是PHP扩展的一个bug。

票数 2
EN

Stack Overflow用户

发布于 2011-04-05 20:44:51

您可能没有正确地实现ArrayAccess方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4033398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档