vrana           Fri Sep  2 08:32:09 2005 EDT

  Modified files:              
    /phpdoc/en/language types.xml 
  Log:
  Modifying array values (bug #34220)
  
http://cvs.php.net/diff.php/phpdoc/en/language/types.xml?r1=1.153&r2=1.154&ty=u
Index: phpdoc/en/language/types.xml
diff -u phpdoc/en/language/types.xml:1.153 phpdoc/en/language/types.xml:1.154
--- phpdoc/en/language/types.xml:1.153  Tue Apr 12 03:40:55 2005
+++ phpdoc/en/language/types.xml        Fri Sep  2 08:32:09 2005
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.153 $ -->
+<!-- $Revision: 1.154 $ -->
  <chapter id="language.types">
   <title>Types</title>
 
@@ -1925,27 +1925,25 @@
     </example>
     
     <para>
-     Note that it is currently not possible to change the values of the array
-     directly in such a loop. 
-      <!--
-       Should be made possible, if you write:
-       foreach ( $colors as &$color )
-      
-       See bug#3074
-      -->
-     A workaround is the following: 
+     Changing values of the array directly is possible since PHP 5 by passing
+     them as reference. Prior versions need workaround:
      <example id="language.types.array.examples.changeloop">
       <title>Collection</title>
       <programlisting role="php">
 <![CDATA[
 <?php
+// PHP 5
+foreach ($colors as &$color) {
+    $color = strtoupper($color);
+}
+unset($color); /* ensure that following writes to
+$color will not modify the last array element */
+
+// Workaround for older versions
 foreach ($colors as $key => $color) {
-    // won't work:
-    //$color = strtoupper($color);
-    
-    // works:
     $colors[$key] = strtoupper($color);
 }
+
 print_r($colors);
 ?>
 ]]>

Reply via email to