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