svn: /phpdoc/de/trunk/language/control-structures/ for.xml

[email protected] (Raphael Michel)
Newsgroups php.doc.de
Message-ID <[email protected]>
raphaelm                                 Fri, 04 Jun 2010 21:22:27 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=300189

Log:
initial translation

Changed paths:
    A   phpdoc/de/trunk/language/control-structures/for.xml

Added: phpdoc/de/trunk/language/control-structures/for.xml
===================================================================
--- phpdoc/de/trunk/language/control-structures/for.xml	                        (rev 0)
+++ phpdoc/de/trunk/language/control-structures/for.xml	2010-06-04 21:22:27 UTC (rev 300189)
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Revision: 288721 $ -->
+
+<sect1 xml:id="control-structures.for" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title><literal>for</literal></title>
+ <para>
+  <literal>for</literal>-Schleifen sind die komplexesten Schleifen in PHP.
+  Sie verhalten sich wie ihre Pendante in C. Die Syntax einer
+  <literal>for</literal>-Schleife ist:
+  <informalexample>
+   <programlisting>
+<![CDATA[
+for (expr1; expr2; expr3)
+    statement
+]]>
+   </programlisting>
+  </informalexample>
+ </para>
+ <simpara>
+  Der erste Ausdruck (<varname>expr1</varname>) wird vor Ausführung der
+  Schleife ausgeführt.
+ </simpara>
+ <simpara>
+  Am Anfang jedes Schleifendurchlaufs wird die Anweisung <varname>expr2</varname>
+  ausgeführt. Wenn <varname>expr2</varname> wahr ist (&true;), wird die
+  Schleife fortgesetzt und die untergeordneten Anweisungen werden ausgeführt.
+  Andernfalls (&false;) endet die Ausführung der Schleife.
+ </simpara>
+ <simpara>
+  Am Ende jedes Schleifendurchlaufs wird die Anweisung <varname>expr3</varname>
+  ausgeführt.
+ </simpara>
+ <simpara>
+  Jede der Anweisungen kann leer sein oder mehrere durch Kommata getrennte
+  Anweisungen enthalten. In letzterem Fall werden bei <varname>expr2</varname>
+  zwar alle Anweisungen ausgeführt aber das Ergebnis wird nur von der letzten
+  Anweisung verwendet.
+  Wenn <varname>expr2</varname> leer ist, läuft die Schleife unendlich
+  lange (PHP nimmt dies als &true;, ebenso wie C). Dies ist nicht so sinnlos,
+  wie es scheint, denn oft will man die Schleife manuell mit <link
+  linkend="control-structures.break"><literal>break</literal></link>
+  beenden.
+ </simpara>
+ <para>
+  Die folgenden Beispiele geben alle die Zahlen 1 bis 10 aus:
+  <informalexample>
+   <programlisting role="php">
+<![CDATA[
+<?php
+/* Beispiel 1 */
+
+for ($i = 1; $i <= 10; $i++) {
+    echo $i;
+}
+
+/* Beispiel 2 */
+
+for ($i = 1; ; $i++) {
+    if ($i > 10) {
+        break;
+    }
+    echo $i;
+}
+
+/* Beispiel 3 */
+
+$i = 1;
+for (; ; ) {
+    if ($i > 10) {
+        break;
+    }
+    echo $i;
+    $i++;
+}
+
+/* Beispiel 4 */
+
+for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
+?>
+]]>
+   </programlisting>
+  </informalexample>
+ </para>
+ <simpara>
+  Sicher ist das erste das hübscheste (vielleicht auch das vierte), aber
+  in manchen Fällen sind leere Anweisungen in <literal>for</literal>-Schleifen
+  durchaus praktisch.
+ </simpara>
+ <para>
+  PHP untersützt bei <literal>for</literal>-Schleifen ebenfalls die alternative
+  "Doppelpunkt-Syntax":
+  <informalexample>
+   <programlisting>
+<![CDATA[
+for (expr1; expr2; expr3):
+    statement
+    ...
+endfor;
+]]>
+   </programlisting>
+  </informalexample>
+ </para>
+ <simpara>
+  Es ist üblich, dass Arrays wie in dem folgenden Beispiel durchlaufen
+  werden.
+ </simpara>
+ <para>
+  <informalexample>
+   <programlisting role="php">
+<![CDATA[
+<?php
+/*
+* Dies ist ein Array mit Daten, die wir in der
+* Schleife verändern wollen.
+*/
+$personen = Array(
+        Array('name' => 'Hans', 'salt' => 856412),
+        Array('name' => 'Martin', 'salt' => 215863)
+        );
+
+for($i = 0; $i < sizeof($personen); ++$i)
+{
+    $personen[$i]['salt'] = rand(000000, 999999);
+}
+?>
+]]>
+   </programlisting>
+  </informalexample>
+ </para>
+ <simpara>
+  Das Problem liegt in der zweiten Anweisung: Dieses Programmbeispiel
+  kann sehr langsam sein, weil die Größe des Arrays bei jedem Schleifendurchlauf
+  berechnet wird. Da sich die Größe nie ändert, kann das Programm
+  optimiert werden, indem man die Größe in eine Variable speichert und diese
+  anstelle von sizeof nutzt, wie im folgenden Beispiel:
+ </simpara>
+ <para>
+  <informalexample>
+   <programlisting role="php">
+<![CDATA[
+<?php
+$personen = Array(
+        Array('name' => 'Hans', 'salt' => 856412),
+        Array('name' => 'Martin', 'salt' => 215863)
+        );
+
+for($i = 0, $groesse = sizeof($personen); $i < $size; ++$i)
+{
+    $personen[$i]['salt'] = rand(000000, 999999);
+}
+?>
+]]>
+   </programlisting>
+  </informalexample>
+ </para>
+</sect1>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+indent-tabs-mode:nil
+sgml-parent-document:nil
+sgml-default-dtd-file:"~/.phpdoc/manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
+-->


Property changes on: phpdoc/de/trunk/language/control-structures/for.xml
___________________________________________________________________
Added: svn:executable
   + *
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.