vrana           Fri Aug  6 04:55:17 2004 EDT

  Modified files:              
    /phpdoc/en/language control-structures.xml 
  Log:
  foreach &
  
http://cvs.php.net/diff.php/phpdoc/en/language/control-structures.xml?r1=1.102&r2=1.103&ty=u
Index: phpdoc/en/language/control-structures.xml
diff -u phpdoc/en/language/control-structures.xml:1.102 
phpdoc/en/language/control-structures.xml:1.103
--- phpdoc/en/language/control-structures.xml:1.102     Fri Aug  6 04:32:48 2004
+++ phpdoc/en/language/control-structures.xml   Fri Aug  6 04:55:17 2004
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.102 $ -->
+<!-- $Revision: 1.103 $ -->
  <chapter id="language.control-structures">
   <title>Control Structures</title>
 
@@ -541,6 +541,27 @@
       <emphasis>is</emphasis> advanced with the processing of the
       array.  Assuming the foreach loop runs to completion, the
       array's internal pointer will be at the end of the array.
+     </para>
+     <para>
+      As of PHP 5, you can easily modify array's elements by preceding
+      <literal>$value</literal> with &amp;. This will assign
+      <link linkend="language.references">reference</link> instead of copying
+      the value.
+      <informalexample>
+       <programlisting role="php">
+<![CDATA[
+<?php
+$arr = array(1, 2, 3, 4);
+foreach ($arr as &$value) {
+    $value = $value * 2;
+}
+// $arr is now array(2, 4, 6, 8)
+?>
+]]>
+       </programlisting>
+      </informalexample>
+      This is possible only if iterated array can be referenced (i.e. is
+      variable).
      </para>
     </note>
    </para>

Reply via email to