From f97358b8da7a2cbb1bf6438298286f7290616381 Mon Sep 17 00:00:00 2001 From: xue <> Date: Sat, 4 Feb 2006 04:43:40 +0000 Subject: Fixed a bug in TList and TMap about the usage of isset. --- framework/Collections/TMap.php | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) (limited to 'framework/Collections/TMap.php') diff --git a/framework/Collections/TMap.php b/framework/Collections/TMap.php index be37a46b..4d810503 100644 --- a/framework/Collections/TMap.php +++ b/framework/Collections/TMap.php @@ -97,14 +97,12 @@ class TMap extends TComponent implements IteratorAggregate,ArrayAccess /** * Adds an item into the map. - * Note, if the specified key already exists, the old value will be removed first. + * Note, if the specified key already exists, the old value will be overwritten. * @param mixed key * @param mixed value */ public function add($key,$value) { - if(isset($this->_d[$key])) - $this->remove($key); $this->_d[$key]=$value; } @@ -116,7 +114,7 @@ class TMap extends TComponent implements IteratorAggregate,ArrayAccess */ public function remove($key) { - if(isset($this->_d[$key])) + if(isset($this->_d[$key]) || array_key_exists($key,$this->_d)) { $value=$this->_d[$key]; unset($this->_d[$key]); @@ -141,7 +139,7 @@ class TMap extends TComponent implements IteratorAggregate,ArrayAccess */ public function contains($key) { - return isset($this->_d[$key]); + return isset($this->_d[$key]) || array_key_exists($key,$this->_d); } /** @@ -305,11 +303,7 @@ class TMapIterator implements Iterator */ public function next() { - do - { - $this->_key=next($this->_keys); - } - while(!isset($this->_d[$this->_key]) && $this->_key!==false); + $this->_key=next($this->_keys); } /** -- cgit v1.2.3