php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #53183 Accessing an ArrayAccess item directly
Submitted: 2010-10-27 15:42 UTC Modified: 2010-10-27 16:05 UTC
From: dvdm80 at gmail dot com Assigned:
Status: Not a bug Package: Arrays related
PHP Version: 5.3.3 OS: Windows
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: dvdm80 at gmail dot com
New email:
PHP Version: OS:

 

 [2010-10-27 15:42 UTC] dvdm80 at gmail dot com
Description:
------------
I'm trying to get an item of an array by its key. The array is in fact a 
SolrObject, which implements ArrayAccess, so I understand that I can access its 
items as I would in an array. This object is retrieved by the getResponse() 
method of the SolrQueryResponse class 
(php.net/manual/en/solrresponse.getresponse.php).

This is the structure of my $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
        )
    )
)
So, if I try

var_dump($myobject[116809]);
I get NULL.

But if I try

echo array_key_exists(116809, $myobject);
I get 1

If I try to iterate $myobject with a foreach, I can access its elements 
correctly.

Why can't I access directly one element by its key?

EDIT: Answering to @ircmaxell, this is the 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"
    }
  }
}
And this is the result of var_dump($myobject->getPropertyNames());

array(2) {
  [0]=>
  string(0) ""
  [1]=>
  string(0) ""
}


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2010-10-27 15:43 UTC] dvdm80 at gmail dot com
More info here:

http://stackoverflow.com/questions/4033398/accessing-an-arrayaccess-item-directly
 [2010-10-27 16:05 UTC] cataphract@php.net
-Status: Open +Status: Bogus
 [2010-10-27 16:05 UTC] cataphract@php.net
Thanks for your report, but this is most likely a bug in the solr extension, not PHP.

PECL bugs (i.e. bugs of packages in PECL, as opposed to bugs in extensions bundled with PHP) should be reported at http://pecl.php.net/, in particular for the solr extension would be http://pecl.php.net/bugs/report.php?package=solr
 
PHP Copyright © 2001-2019 The PHP Group
All rights reserved.
Last updated: Sun Dec 08 21:01:25 2019 UTC