#30346 [NEW]: arrayAcces & using $this

From: Date: Wed, 06 Oct 2004 21:54:16 +0000
Subject: #30346 [NEW]: arrayAcces & using $this
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-67208@lists.php.net to get a copy of this message
From: profic at kursknet dot ru Operating system: WinXP PHP version: 5.0.2 PHP Bug Type: Zend Engine 2 problem Bug description: arrayAcces & using $this Description: ------------ Class inherited of class implemented ArrayAccess have problems with using $this['some' . $var] = $var . 'str'; if $var passed as method parameter. Seems this is a memory problem. Look at the 3 last entries in rtfHelperArray::haStore. Reproduce code: --------------- <?php abstract class rtfHelperArray implements arrayAccess { private $haStore = array (); final public function offsetExists ($offset) { return true; } final public function offsetGet ($offset) { if (array_key_exists ($offset, $this->haStore)) { return $this->haStore[$offset]; } else { $temp = NULL; return $temp; } } final public function offsetSet ($offset, $value) { $this->haStore[$offset] = $value; return true; } final public function offsetUnset ($offset) { unset ($this->haStore[$offset]); return true; } } error_reporting (E_ALL); class test extends rtfHelperArray { public function doTest ($idx) { $this[$idx] = $idx; echo $idx, ' : ', $this[$idx], "\n"; $this[$idx . '-2'] = $idx . '-2'; echo $idx . '-2', ' : ', $this[$idx . '-2'], "\n"; $this['3-' . $idx] = $idx . '-333'; echo '3-' . $idx, ' : ', $this['3-' . $idx], "\n"; $this['4-' . $idx] = $idx . '-4444'; echo '4-' . $idx, ' : ', $this['4-' . $idx], "\n"; $this['5-' . $idx] = $idx . '-5'; echo '5-' . $idx, ' : ', $this['5-' . $idx], "\n"; var_dump ($this); } } $o = new test (); $o->doTest ('idx'); ?> Expected result: ---------------- idx : idx idx-2 : idx-2 3-idx : idx-333 4-idx : idx-4444 5-idx : idx-5 object(test)#1 (1) { ["haStore:private"]=> array(5) { ["idx"]=> string(3) "idx" ["idx-2"]=> string(5) "idx-2" ["3-idx"]=> string(7) "idx-333" ["4-idx"]=> string(8) "idx-4444" ["5-idx"]=> string(5) "idx-5" } } Actual result: -------------- idx : idx idx-2 : idx-2 3-idx : 4-idx : idx-4444 5-idx : object(test)#1 (1) { ["haStore:private"]=> array(5) { ["idx"]=> string(3) "idx" ["idx-2"]=> string(5) "idx-2" ["idx-3"]=> string(7) "test 3" ["4-idx"]=> string(8) "idx-4444" ["idx-5"]=> string(5) "test " } } -- Edit bug report at http://bugs.php.net/?id=30346&edit=1 -- Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=30346&r=trysnapshot4 Try a CVS snapshot (php5.0): http://bugs.php.net/fix.php?id=30346&r=trysnapshot50 Try a CVS snapshot (php5.1): http://bugs.php.net/fix.php?id=30346&r=trysnapshot51 Fixed in CVS: http://bugs.php.net/fix.php?id=30346&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=30346&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=30346&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=30346&r=needscript Try newer version: http://bugs.php.net/fix.php?id=30346&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=30346&r=support Expected behavior: http://bugs.php.net/fix.php?id=30346&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=30346&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=30346&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=30346&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=30346&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=30346&r=dst IIS Stability: http://bugs.php.net/fix.php?id=30346&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=30346&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=30346&r=float MySQL Configuration Error: http://bugs.php.net/fix.php?id=30346&r=mysqlcfg

« previous php.bugs (#67208) next »