SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=131&group=25&page=2
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.de
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de


while-Schleife


Während die if-Anweisung die grundlegende Steueranweisung ist, mit deren Hilfe in PHP Entscheidungen gefällt werden, können mit dem Sprachelement while Anweisungen wiederholt ausgeführt werden.


Definition

while (Bedingung/Ausdruck) {
  Anweisung/en;
}



Bild 3.6: Ablaufschema einer while-Schleife

Beispiel

// 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
}

Und so funktioniert die while-Anweisung: Zunächst wird der angegebene Ausdruck berechnet. Ist er false, geht der Interpreter zur nächsten Anweisung im Programm über. Sollte dieser jedoch true sein, wird die angegebene Anweisung bzw. der entsprechende Anweisungsblock ausgeführt. Anschließend wird der Ausdruck neu berechnet. Wiederum geht der Interpreter zur im Programm folgenden Anweisung über, falls der Wert des Ausdrucks false sein sollte. Ansonsten wird erneut die Anweisung ausgeführt, die den Hauptteil der Schleife ausmacht. Dieser Kreislauf wird so lange durchlaufen, bis der Ausdruck schließlich false ergibt. Dann wird die Ausführung der while-Anweisung beendet, und der PHP-Interpreter fährt mit der sequenziellen Abarbeitung des Programms fort.

Hinweis: Schleifendurchläufe bezeichnet man auch als Iterationen.

Hier noch ein Beispiel, mit dessen Hilfe Sie die Zeichen der ASCII-Tabelle im Handumdrehen erzeugt haben:
$zaehler = 32;
while ($zaehler < 127) {
  $zeichen = chr($zaehler);
  echo $zeichen . " |";
  $zaehler++;;
}

Ausgabe
|! |" |# |$ |% |& |' |( |) |* |+ |, |- |. |/ |0 |1 |2 |3 |4 |5 |6 |7 |8 |9 |: |; |< |= |> |? |@ |A |B |C |D |E |F |G |H |I |J |K |L |M |N |O |P |Q |R |S |T |U |V |W |X |Y |Z |[ |\ |] |^ |_ |` |a |b |c |d |e |f |g |h |i |j |k |l |m |n |o |p |q |r |s |t |u |v |w |x |y |z |{ || |} |~ |
{PSP}Alternative Syntax

Auch für die while-Schleife existiert in PHP eine alternative Schreibweise.


Definition

while (Bedingung/Ausdruck):
  Anweisung/en;
endwhile;

Beispiel – bisherige Schreibweise

<?php
$zaehler = 0;
$max = 10;
while ($zaehler < $max) {
  if ($zaehler % 2) {
    $zaehler++;
    continue;
  }
  echo "Zaehler: $zaehler <br>";
  $zaehler++;
}
?>

Beispiel – alternative Schreibweise

<?
$zaehler = 0;
$max = 10;
while ($zaehler < $max):
if ($zaehler % 2) {
  $zaehler++;
  continue;
}
?>
Zaehler: <? echo $zaehler;?><br>
<? $zaehler++; ?>
<? endwhile ?>