marko.crni Posted October 27, 2010 Share Posted October 27, 2010 Can someone explain this strange behavior: $aArray = array( 1 => null, 2 => null, 3 => null, ); foreach($aArray as $key => &$val) { $val = "Some Value"; foreach($aArray as $Xkey => $Xval){} // Second foreach } var_dump($aArray); Rsult is: array(3) { [1]=> string(10) "Some Value" [2]=> NULL [3]=> NULL } It looks like second foreach breaks reference, why? Link to comment https://forums.phpfreaks.com/topic/217013-foreach-by-reference/ Share on other sites More sharing options...
freelance84 Posted October 27, 2010 Share Posted October 27, 2010 foreach($aArray as $key => &$val) What is the & for before $val in the 1st foreach loop? Link to comment https://forums.phpfreaks.com/topic/217013-foreach-by-reference/#findComment-1127159 Share on other sites More sharing options...
marko.crni Posted October 27, 2010 Author Share Posted October 27, 2010 For info about & read php manual: http://www.php.net/manual/en/control-structures.foreach.php http://php.net/manual/en/language.references.php From manual: As of PHP 5, you can easily modify array's elements by preceding $value with &. This will assign reference instead of copying the value. Link to comment https://forums.phpfreaks.com/topic/217013-foreach-by-reference/#findComment-1127162 Share on other sites More sharing options...
freelance84 Posted October 27, 2010 Share Posted October 27, 2010 hmm cool Link to comment https://forums.phpfreaks.com/topic/217013-foreach-by-reference/#findComment-1127165 Share on other sites More sharing options...
marko.crni Posted October 27, 2010 Author Share Posted October 27, 2010 This problem exists on PHP Version 5.1.6 with zend optimizer. On PHP 5.3.2 with no optimizer, result is: array(3) { [1]=> string(10) "Some Value" [2]=> string(10) "Some Value" [3]=> &string(10) "Some Value" } Worked as expected.... So I guess problem is in PHP or Zend optimizer Link to comment https://forums.phpfreaks.com/topic/217013-foreach-by-reference/#findComment-1127174 Share on other sites More sharing options...
marko.crni Posted October 28, 2010 Author Share Posted October 28, 2010 The same problem without zend optimiser, so problem is in PHP 5.1.6 Link to comment https://forums.phpfreaks.com/topic/217013-foreach-by-reference/#findComment-1127429 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.