philip          Sat Jun 21 23:09:46 2003 EDT

  Modified files:              
    /phpdoc/en/reference/array/functions        each.xml 
  Log:
  Added a <caution> regarding bug #23195 as copying an array resets the original 
array's
  pointer which can cause an endless loop.  Also, each() will move the pointer past 
the end 
  as opposed to the end.  Updated the example to be self-contained, no longer uses 
$_POST.
  
  
Index: phpdoc/en/reference/array/functions/each.xml
diff -u phpdoc/en/reference/array/functions/each.xml:1.10 
phpdoc/en/reference/array/functions/each.xml:1.11
--- phpdoc/en/reference/array/functions/each.xml:1.10   Mon Jun 16 08:03:39 2003
+++ phpdoc/en/reference/array/functions/each.xml        Sat Jun 21 23:09:45 2003
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.10 $ -->
+<!-- $Revision: 1.11 $ -->
 <!-- splitted from ./en/functions/array.xml, last change in rev 1.2 -->
   <refentry id="function.each">
    <refnamediv>
@@ -90,21 +90,27 @@
     </para>
     <para>
      <function>each</function> is typically used in conjunction with
-     <function>list</function> to traverse an array; for instance,
-     <varname>$_POST</varname>:
+     <function>list</function> to traverse an array, here's an 
+     example:
      <example>
-      <title>
-       Traversing <varname>$_POST</varname> with
-       <function>each</function>
-      </title>
+      <title>Traversing an array with <function>each</function></title>
       <programlisting role="php">
 <![CDATA[
 <?php
-echo "Values submitted via POST method:<br />\n";
-reset ($_POST);
-while (list ($key, $val) = each ($_POST)) {
-    echo "$key => $val<br />\n";
+$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');
+
+reset ($fruit);
+while (list ($key, $val) = each ($fruit)) {
+    echo "$key => $val\n";
 }
+
+/* Outputs:
+
+a => apple
+b => banana
+c => cranberry
+
+*/
 ?>
 ]]>
       </programlisting>
@@ -112,11 +118,19 @@
     </para>
     <para>
      After <function>each</function> has executed, the array cursor
-     will be left on the next element of the array, or on the last
+     will be left on the next element of the array, or past the last
      element if it hits the end of the array. You have to use
      <function>reset</function> if you want to traverse the array
      again using each.
     </para>
+    <caution>
+     <para>
+      Because assigning an array to another variable resets the original
+      arrays pointer, our example above would cause an endless loop had we
+      assigned <varname>$fruit</varname> to another variable inside the
+      loop.
+     </para>
+    </caution>
     <para>
      See also <function>key</function>, <function>list</function>,
      <function>current</function>, <function>reset</function>,



-- 
PHP Documentation Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to