ID: 24486 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Open +Status: Feedback -Bug Type: Unknown/Other Function +Bug Type: Scripting Engine problem Operating System: Linux PHP Version: 4.3.2 New Comment:
And you know that foreach() operates with a copy of the original array..? And this reference thing is problem..why? Previous Comments: ------------------------------------------------------------------------ [2003-07-03 11:19:53] [EMAIL PROTECTED] Description: ------------ we just detected a strange behaviour with references and foreach: after the foreach() is done in the sample code the & disappear in the var_dump for the first two elements, the third is of course still a valid reference because $row exists i tried to reproduce that effect in different ways but it only happens when using a foreach Reproduce code: --------------- <pre><?php $arr = array(1, 2, 3); for ($i = 0; $i < count($arr); $i++) { $row =& $arr[$i]; $row = $row * $row; } var_dump($arr); reset ($arr); while (list(, $value) = each ($arr)) echo "value: $value\n"; var_dump($arr); foreach($arr AS $value) echo "value: $value\n"; var_dump($arr); ?> Actual result: -------------- array(3) { [0]=> &int(1) [1]=> &int(4) [2]=> &int(9) } value: 1 value: 4 value: 9 array(3) { [0]=> &int(1) [1]=> &int(4) [2]=> &int(9) } value: 1 value: 4 value: 9 array(3) { [0]=> int(1) [1]=> int(4) [2]=> &int(9) } ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=24486&edit=1