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? Quote 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? Quote 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. Quote 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 Quote 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 Quote 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 Quote Link to comment https://forums.phpfreaks.com/topic/217013-foreach-by-reference/#findComment-1127429 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.