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


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