Problem iterating over an array with foreach and a reference variable

From: Date: Tue, 24 Jul 2007 16:16:14 +0000
Subject: Problem iterating over an array with foreach and a reference variable
Groups: php.general 
Request: Send a blank email to php-general+get-259440@lists.php.net to get a copy of this message
I don't know if I'm doing something wrong or if this is a bug. Very simply: I created an array with values 1-5. I use a foreach loop to iterate over it to add 1 to the values. It correctly iterates over the array except for the last value. Code: <?php $test = array(1, 2, 3, 4, 5); print "original: <br>"; foreach ($test as $part) { print "($part) "; } print "<br> changing: <br>"; foreach ($test as &$part) { print "($part -> "; $part ++; print "$part) "; } print "<br>final:<br>"; foreach ($test as $part) { print "($part) "; } print "<br>var dump:<br>"; var_dump($test); ?> Expected Output: original: (1) (2) (3) (4) (5) changing: (1 -> 2) (2 -> 3) (3 -> 4) (4 -> 5) (5 -> 6) final: (2) (3) (4) (5) (6) var dump: array(5) { [0]=> int(2) [1]=> int(3) [2]=> int(4) [3]=> int(5) [4]=> int(5) } Actual Output: original: (1) (2) (3) (4) (5) changing: (1 -> 2) (2 -> 3) (3 -> 4) (4 -> 5) (5 -> 6) final: (2) (3) (4) (5) (5) var dump: array(5) { [0]=> int(2) [1]=> int(3) [2]=> int(4) [3]=> int(5) [4]=> ?(5) } Any help?

« previous php.general (#259440) next »