#24486 [Opn->Fbk]: strange behaviour with references

From: Date: Thu, 03 Jul 2003 19:45:02 +0000
Subject: #24486 [Opn->Fbk]: strange behaviour with references
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-43207@lists.php.net to get a copy of this message
ID: 24486 Updated by: sniper@php.net Reported By: bs@php.net -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] bs@php.net 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

« previous php.bugs (#43207) next »