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
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
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

Pull Requests

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-2025 The PHP Group
All rights reserved.
Last updated: Thu Jul 03 08:01:34 2025 UTC