Hauptmenü

Untermenü

PHP - Grundlagen - Schleifen

1. Einführung

Schleifen werden eingesetzt, um einen bestimmten Programmierteil mehrmals zu durchlaufen. Dabei können Variablenwerte flexibel geändert werden. Besonders wichtige Anwendungsgebiete sind Arrays (da war doch was?) und Datenbankabfragen (da kommt noch was).

2. for-Schleife

Die for-Schleife stellt meiner Meinung nach die verständlichste und klarste Form dar. Deshalb benutze ich sie wahrscheinlich auch, wo ich nur kann. Sie sollte dann eingesetzt werden, wenn uns alle notwendigen Parameter bekannt sind. Ich nenne diese Form daher einfach mal "bestimmte" Schleife. Der Aufbau sieht wie folgt aus:


for ([Ausgangssituation]; [Bedingung]; [Anweisung])

Das folgende Beispiel gibt einfach die Zahlen von 0 - 9 aus:


<?php
  for ($i 0$i 10$i++)
  {
    echo $i.'<br>';
  }
?>

Erinnert ihr euch noch beim Thema Arraytypen an das erste Beispiel? Nun, so etwas kann man wunderbar mit einer for-Schleife abarbeiten:


<?php
  $name[0] = 'Claudia Mustermann';
  $name[1] = 'Dieter Hinz';
  $name[2] = 'Peter Kunz';
  for ($i 0$i count ($name); $i++)
  {
    echo ($i 1).' '.$name[$i].'<br>';
  }
?>

Wichtig ist hierbei der Befehl count. Er gibt die Anzahl der Array-Einträge wieder, also in unserem Fall 3. Das erklärt auch, warum der erste numerische Index eines Arrays immer den Wert 0 hat. Denn count ist immer um 1 größer, als der letzte numerische Index. Alternativ kann man auch sizeof benutzen, das ist dasselbe in grün.

3. while-Schleife

Die while-Schleife stellt die einfachste Form dar. Sie wird solange ausgeführt, wie eine Bedingung wahr ist. Ich nenne sie daher eine "unbestimmte" Schleife, da man nicht genau weiß, wann sie abgebrochen wird. Die Syntax baut sich so auf:


while ([Bedingung])

Dieser Typ eignet sich besonders in Verbindung mit Datenbanken, wo die Zahl der ausgegebenen Datensätze entsprechend einer Abfrage unbekannt ist. Ein anderes Gebiet der while-Schleife ist das zeilenweise Auslesen von Text-Dateien. Die folgenden Beispiele sind natürlich nicht funktionsfähig, dazu kommen wir bei den Tutorials.


<?php
  /* Entsprechend einer SQL-Abfrage werden alle
     gefundenen Datensätze in ein Array geschrieben */
  while ($row mysql_fetch_assoc (result))
  /* Liest eine Textdatei zeilenweise ein */
  while ($line fgets ($file))
?>

4. do...while-Schleife

Dieser Schleifentyp arbeitet genauso wie while, bis auf zwei Unterschiede. Die Syntax ist ein wenig anders und somit auch das Verhalten. Wenn bei einer while-Schleife schon die erste Bedingung falsch ist, bricht sie sofort ab. Bei do while dagegen wird die Schleife mindestens einmal(!) ausgeführt. Ich persönlich muss gestehen, dass ich noch kein einziges Mal damit gearbeitet habe. Warum? Habe ich nie gebraucht.


<?php
  $i 0;
  /* keine Ausgabe, da Bedingung von
     vornherein falsch */
  while ($i 0)
  {
    echo $i;
  }
  /* gibt $i einmal aus */
  do
  {
    echo $i;
  }
  while ($i 0);
?>

5. foreach-Schleife

Die Variante dient einzig und allein der Verarbeitung von Arrays und Objekten, und das macht sie ganz hervorragend. Im folgenden Beispiel werden alle assoziativen Indizes des Arrays und deren Werte ausgegeben.


<?php
  $adresse['name'] = 'Claudia Mustermann';
  $adresse['straße'] = 'Musterstraße 0';
  $adresse['plz'] = '00000';
  $adresse['ort'] = 'Musterstadt';
  $adresse['mail'] = 'info@mustermann.de';
  foreach($adresse as $key => $value)
  {
    echo $key.'-'.$value.'<br>';
  }
?>

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt