Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Sprachelemente und Syntax  Teil von  Kontrollstrukturen
  +++ SELFPHP CronJob-Service :: Jetzt auch als Professional-Version verfügbar! +++



:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP? In über 120.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

:: Qozido ::

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.   

 
 
for-schleife




Die for-Anweisung ist für Schleifen oft praktischer als die while-Anweisung. Hier wird ausgenutzt, dass die meisten Schleifen einem bestimmten Schema folgen. Normalerweise gibt es eine Schleifenvariable, die vor Beginn der Schleife initialisiert wird. Vor jedem Schleifendurchlauf wird der Wert dieser Variablen innerhalb des Ausdrucks überprüft. Schließlich wird sie am Ende der Schleife, unmittelbar vor der erneuten Auswertung des Ausdrucks, inkrementiert oder in anderer Weise geändert. Sie hat außerdem den Vorzug, dass die Initialisierung, der Ausdruck (Bedingung) und die Veränderung der Schleifenvariablen übersichtlich im Kopf der Schleife zusammengefasst sind.


Definition

for (Init Schleifenvariable; Bedingung; Veränderung) {
  Anweisung/en;
}



Bild 3.8: Ablaufschema einer for-Schleife

Am einfachsten lässt sich erklären, was die for-Anweisung bewirkt, wenn man die äquivalente while-Anweisung angibt:

// Laufvariable (Zählvariable)
$i = 0;

// while-Anweisung
// Ausgabe: 0 1 2 3 4 5 6 7 8 9
while ($i < 10) { // Bedingung
  echo "$i<br>"; // Anweisungsblock
  $i++; // Inkrementierung der Laufvariablen
}

// for-Anweisung
// Im Ausgabefenster: 0 1 2 3 4 5 6 7 8 9
for ($i=0;$i<10;$i++) {
  echo "$i<br>"; // Anweisungsblock
}

// Schreibweise (Variante 2)
for ($i=0;$i<10;$i++)
  echo "$i<br>"; // Anweisung

Wie Sie hier lesen, stehen in dieser Schreibweise alle wichtigen Informationen über die Schleifenvariable in einer einzigen Codezeile. Damit ist die Arbeitsweise der Schleife klar ersichtlich. Außerdem wird dadurch, dass die Veränderung der Schleifenvariablen innerhalb der eigentlichen for-Anweisung steht, der Anweisungsblock vereinfacht.


Flexibilität der for-Schleife

Alle drei Parameter der for-Schleife sind äußerst flexibel einsetzbar. So sind die drei Parameter der for-Schleife optional. Ohne eine Iterationsvariable wird die Schleife endlos durchlaufen. Sie können in diesem Fall wieder auf break zurückgreifen, um die Schleife mit einer zusätzlichen Bedingung zu verlassen.

Beispiel

<?php
$zaehler = 1;
for (;;) {
  if ($zaehler > 10) {
    break;
  }
  print $zaehler;
  $zaehler++;
}
?>



Hinweis: continue kann ebenfalls zum Einsatz kommen.

Der flexible Umgang mit den Schleifenparametern kennt praktisch keine Grenzen. Auch das folgende Beispiel ist syntaktisch korrekt:

<?php
for ($i = 0, $j = 10;$i<$j;$i++) {
  $j--;
  echo "i ist jetzt: $i<br>";
  echo "j ist jetzt: $j<br>";
}
?>

Ausgabe
i ist jetzt: 0
j ist jetzt: 9
i ist jetzt: 1
j ist jetzt: 8
i ist jetzt: 2
j ist jetzt: 7
i ist jetzt: 3
j ist jetzt: 6
i ist jetzt: 4
j ist jetzt: 5

Es spielt offensichtlich keine Rolle, ob hier Variablen zum Einsatz kommen oder nicht. Wenn Sie beispielsweise lediglich eine Liste ausgeben wollen, können Sie den Befehl recht knapp halten:

<?php
for ($i = 1; $i <= 10; print $i, $i++) ;
?>

Innerhalb des for-Befehls können also weitere Befehle, durch Kommata getrennt, eingesetzt werden. Im Beispiel wird übrigens nicht zufällig der Befehl print anstatt des flexibleren echo verwendet. Wie bei der Befehlsbeschreibung bereits erläutert, gibt echo nichts zurück, während print die Ausführung im Erfolgsfall mit TRUE quittiert. Normalerweise wird der Rückgabewert nicht benötigt und gelöscht. Die for-Schleife erwartet jedoch von jedem direkt eingegebenen Wert, dass er sich als Ausdruck verhält – Ausdrücke geben immer etwas zurück. An dieser Stelle kann echo also nicht funktionieren. Versuchen Sie es dennoch, erhalten Sie einen Laufzeitfehler.


Alternative Syntax

Natürlich, wie kann es anders sein, gibt es auch für die for-Schleife eine alternative Schreibweise.


Definition

for (Init Schleifenvariable; Bedingung; Veränderung):
  Anweisungen/en;
endfor;

Beispiel – alternative Schreibweise

<? for ($i = 0; $i <= 10; $i++): ?>
i ist jetzt: <? echo $i ?><br>
<? endfor; ?>

Ausgabe
i ist jetzt: 0
i ist jetzt: 1
i ist jetzt: 2
i ist jetzt: 3
i ist jetzt: 4
i ist jetzt: 5
i ist jetzt: 6
i ist jetzt: 7
i ist jetzt: 8
i ist jetzt: 9
i ist jetzt: 10



 




:: Premium-Partner ::

Webhosting/Serverlösungen


Premium-Partner MECO Systemhaus GmbH & Co. KG
Premium-Partner PSW GROUP GmbH & Co. KG
Premium-Partner BPI-Systeme
Premium-Partner Pixel X
Premium-Partner
 

:: SELFPHP Sponsoren ::


Microsoft Deutschland GmbH
twosteps.net - ...Premium-Webhosting
Sedo - Bei uns wird PHP großgeschrieben
hostfactory.ch - OptimaNet Schweiz AG
ZEND - The PHP Company
Kaspersky Labs
HighText iBusiness
SELFPHP Sponsoren
 

Qozido


© 2001-2009 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt