|   | php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
| 
  [2004-04-08 15:20 UTC] adam at trachtenberg dot com
 Description: ------------ In PHP 5, foreach() allows you to iterate over values by reference. This does not work when you do foreach($array as $value) instead of foreach($array as $key => $value). I believe this patch fixes the problem, but someone should *really* double check it. :) http://www.trachtenberg.com/patches/ foreach_by_reference.txt Reproduce code: --------------- php -r '$array = array(); foreach($array as $value) {)' Expected result: ---------------- Nothing. Actual result: -------------- PHP Fatal error: Key element cannot be a reference in Command line code on line 1 PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits             | |||||||||||||||||||||||||||||||||||||
|  Copyright © 2001-2025 The PHP Group All rights reserved. | Last updated: Fri Oct 31 17:00:02 2025 UTC | 
Jesus. Sometimes I reduce the test case too far. :) $a = array('foo', 'bar'); foreach ($a as &$value) { $value = strtoupper($value); } print_r($a); $a should have FOO and BAR, as it works okay if you do: foreach ($a as $k => &$value) { $value = strtoupper($value); } But PHP gives an error on the first example w/o my patch. (At least I hope it still does, I need to recompile PHP to triple check.)