ID:               40872
 Updated by:       [EMAIL PROTECTED]
 Reported By:      piter75 at gmail dot com
-Status:           Assigned
+Status:           Closed
 Bug Type:         SPL related
-Operating System: Ubuntu Feisty, Windows XP
+Operating System: *
 PHP Version:      5.2.1
 Assigned To:      helly
 New Comment:

This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.




Previous Comments:
------------------------------------------------------------------------

[2007-03-20 20:00:11] piter75 at gmail dot com

Description:
------------
ArrayIterator's methods offsetSet and offsetGet treat the string
enclosed integers ('1', '2', ....) as integers, but offsetExists treats
them as strings and returns false even if the value exists at the
specified offset.

Reproduce code:
---------------
<?php
        class Project {
                public $id;

                function __construct($id) {
                        $this->id = $id;
                }
        }

        class ProjectsList extends ArrayIterator {
                public function add(Project $item) {
                        $this->offsetSet($item->id, $item);
                }
        }

        $projects = new ProjectsList();
        $projects->add(new Project('1'));
        $projects->add(new Project(2));

        var_dump($projects->offsetExists(1));
        var_dump($projects->offsetExists('2'));
?>

Expected result:
----------------
boolean true
boolean true

Actual result:
--------------
boolean true
boolean false



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=40872&edit=1

Reply via email to