ID: 32088 Updated by: [EMAIL PROTECTED] Reported By: karl at posmaster dot com dot au -Status: Open +Status: Closed Bug Type: Zend Engine 2 problem Operating System: Slackware Linux 2.4.26 PHP Version: 5.0.3 New Comment:
So it's fixed and working -> closed. Previous Comments: ------------------------------------------------------------------------ [2005-02-25 05:19:45] karl at posmaster dot com dot au Using that snapshot (PHP Version 5.0.4-dev) the second var_dump() produces: array(3) { [1]=> array(2) { [0]=> string(3) "one" [1]=> string(3) "two" } [3]=> array(2) { [0]=> string(4) "five" [1]=> string(3) "six" } [5]=> array(2) { [0]=> string(4) "nine" [1]=> string(3) "ten" } } Expecting: array(3) { [1]=> array(2) { [0]=> string(3) "one" [1]=> string(3) "foo" } [3]=> array(2) { [0]=> string(4) "five" [1]=> string(3) "foo" } [5]=> array(2) { [0]=> string(4) "nine" [1]=> string(3) "foo" } } Using Apache 1.3.31 PHP Configure string: './configure' '--prefix=/usr' '--disable-static' '--with-apxs=/usr/sbin/apxs' '--sysconfdir=/etc' '--enable-discard-path' '--with-config-file-path=/etc/apache' '--enable-safe-mode' '--with-openssl' '--with-mhash' '--enable-bcmath' '--with-bz2' '--with-pic' '--enable-calendar' '--enable-ctype' '--with-gdbm' '--with-db3' '--enable-dbase' '--enable-ftp' '--with-iconv' '--with-exif' '--with-gd' '--enable-gd-native-ttf' '--with-jpeg-dir=/usr' '--with-png' '--with-gmp' '--with-gettext=shared,/usr' '--with-expat-dir=/usr' '--with-xml' '--enable-wddx' '--with-mm=/usr' '--enable-trans-sid' '--enable-shmop' '--enable-sockets' '--with-regex=php' '--enable-sysvsem' '--enable-sysvshm' '--enable-yp' '--enable-memory-limit' '--with-tsrm-pthreads' '--enable-shared' '--disable-debug' '--with-zlib=/usr' '--with-pgsql' '--with-mysql' ------------------------------------------------------------------------ [2005-02-24 23:50:30] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php5-STABLE-latest.tar.gz For Windows: http://snaps.php.net/win32/php5.0-win32-latest.zip I can't reproduce it. ------------------------------------------------------------------------ [2005-02-23 23:30:05] karl at posmaster dot com dot au Description: ------------ Using "for each" I wanted to remove some items and change others. It seems that the reference in the loop no longer works once unset() has been called on the array. The commented line achieves the desired end, but circumvents the reference. The reference works if the unset() line is commented. This is reproduced without the use of Zend or 3rd part extensions. ----------------------- Reproduce code: --------------- <?php $stuff = array(array('one','two'),array('one','two'), array('three','four'),array('five','six'), array('seven','eight'),array('nine','ten')); var_dump($stuff); foreach ($stuff as $key => &$values) { print "on key:$key<br>"; if(($key%2)==0){ print "Running unset for $key <br>"; unset ($stuff[$key]); }else{ print "Running change for $key <br>"; $values[1]='foo'; // $stuff[$key][1] = 'foo'; } } var_dump($stuff); ?> Expected result: ---------------- I expected to see elements $stuff[1][1], $stuff[3][1] and $stuff[5][1] to be set to 'foo' Actual result: -------------- The elements are left unchanged. Are values 'two', 'six' and 'ten' respectively. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=32088&edit=1