logo

Extra Block Types (EBT) - Neue Erfahrung im Layout Builder❗

Extra Block Types (EBT) - gestylte, anpassbare Blocktypen: Diashows, Registerkarten, Karten, Akkordeons und viele andere. Eingebaute Einstellungen für Hintergrund, DOM Box, Javascript Plugins. Erleben Sie die Zukunft der Layouterstellung schon heute.

Demo EBT-Module EBT-Module herunterladen

❗Extra Absatztypen (EPT) - Erfahrung mit neuen Absätzen

Extra Paragraph Types (EPT) - analoger, auf Absätzen basierender Satz von Modulen.

Demo EPT-Module EPT-Module herunterladen

Scroll

PHP-Lektionen – Lektion 12 – Schleifen while, foreach, for

26/05/2025, by Ivan

Sehr oft müssen wir in der Programmierung, aber auch im Alltag, wiederholende Aktionen ausführen, bis uns das Ergebnis zufriedenstellt. Im Alltag nennen wir das Qual, in der Programmierung nennt man das Schleifen (loops). Schleifen findet man sehr oft in PHP, weil sie eine bequeme Methode sind, um Arrays zu durchlaufen, Funktionen zu berechnen und vieles mehr mit Schleifen zu machen. Beginnen wir mit der einfachsten und beliebtesten Schleife, while.

PHP while-Schleifen

while ist sehr einfach: In runden Klammern schreiben wir die Bedingungen, in geschweiften Klammern, was getan werden soll, wenn die Bedingung erfüllt ist. Die Bedingung ist ein logischer Ausdruck, der zwei Zustände haben kann: TRUE oder FALSE. Wenn Sie logische Ausdrücke noch einmal verstehen möchten, sollten Sie die Lektion über den if-Operator lesen. Und jetzt ein Beispiel für while:

<?php
$counter = 5;
$newArray = array();
while($counter > 2){
  $newArray[]= $counter;
  $counter--;
}
print_r($newArray);
?>

Als Ergebnis werden die Elemente 5, 4, 3 des Arrays ausgegeben. Schauen wir uns an, wie das alles ablief:

1. Schritt: $counter = 5 (5 > 2)

2. Schritt: $counter = 4 (4 > 2)

3. Schritt: $counter = 3 (3 > 2)

4. Schritt: $counter = 2 (2 = 2, die Bedingung ist nicht mehr erfüllt, daher wurde keine Aktion ausgeführt und 2 ist nicht im Array)

Schauen wir uns ein weiteres Beispiel an, die Tabellierung der Funktion y(x) = 2x -1:

<?php
// Funktion y(x) = 2x -1;
$x = -10;
while($x <= 10){
  $y = 2*$x-1;
  print 'y(' . $x . ')=' . $y . '<br />';
  $x++;
}
?>

Als Ergebnis werden die Werte der Funktion für x im Bereich [-10,10] untereinander ausgegeben.

For PHP

Dies ist das Flussdiagramm der while-Schleife, es zeigt die allgemeine Funktionsweise dieser Schleife. Wir haben eine Bedingung und einen Schleifenkörper; solange die Bedingung erfüllt ist, läuft der Körper der Schleife, und wenn die Bedingung nicht mehr erfüllt ist, fährt PHP mit dem nächsten Code fort.

Ein weiterer WICHTIGER Punkt: Wenn Sie die Zeile $x++ entfernen, durch die unser Zähler verändert wird, sodass die Bedingung irgendwann nicht mehr erfüllt ist, was passiert dann, wenn die Bedingung immer wahr bleibt?

<?php
// Funktion y(x) = 2x -1;
$x = -10;
while($x <= 10){
  $y = 2*$x-1;
  print 'y(' . $x . ')=' . $y . '<br />';
  // $x++;
}
?>

Dann wird es sehr, sehr schlimm. Es tritt ein kritischer Fehler auf, unser Schleifenkörper läuft endlos. Diese Situation nennt man Endlosschleife. Vermeiden Sie solche Situationen, Endlosschleifen können dazu führen, dass Ihre Website nicht mehr funktioniert!

PHP foreach-Schleifen

Eine weitere notwendige Schleife, die häufig verwendet wird, wenn man ein Array durchlaufen muss. Unter "durchlaufen" verstehe ich, dass man ein Element des Arrays nimmt, mit ihm eine Aktion ausführt, dann das nächste Element nimmt, dieselbe Aktion ausführt usw., bis alle Elemente durchlaufen sind.

Betrachten wir ein Beispiel: Angenommen, wir haben zehn Elemente "rot" und "blau", zählen wir die Anzahl der roten Elemente:

<?php
$counter = 0;
$newArray =array(
  1=>'rot',
  2=>'blau',
  3=>'blau',
  4=>'rot',
  5=>'rot',
  6=>'blau',
  7=>'rot',
  8=>'blau',
  9=>'rot',
  10=>'blau',
);
foreach($newArray as $key){
  if($key == 'rot'){
    $counter++;
  }
}
print 'Wir haben ' . $counter . ' rote Elemente';
?>

Ich denke, mit diesem einfachen Beispiel ist alles klar. Der Operator as wird hier verwendet, um die Elemente nacheinander zu durchlaufen. Wenn die Elemente zu Ende sind, endet die Ausführung von foreach.

Aber nicht alle Arrays sind so einfach, manchmal enthält ein Array viele verschachtelte Arrays. Und jedes dieser Unterarrays kann man ebenfalls durchlaufen:

<?php
$counter = 0;
$newArray = array(
  1=>array(
    1 => 'rot',
    2 => 'blau',
    3 => 'blau',
  ),
  2=>array(
    1 => 'rot',
    2 => 'rot',
    3 => 'blau',
  ) 
);
foreach($newArray as $key){
  foreach($key as $element){
    if($element == 'rot'){
      $counter++;
    }
  }
}
print 'Wir haben ' . $counter . ' rote Elemente';
?>

Ich denke, foreach ist soweit mehr oder weniger klar, wir werden vorerst dabei bleiben, foreach wird noch in meinen Beispielen vorkommen.

FOR-Schleife

Die for-Schleife ähnelt der while-Schleife. For wird normalerweise verwendet, wenn die Anzahl der Wiederholungen der Schleife im Voraus bekannt ist. Zum Beispiel 10 oder 100 Wiederholungen:

for($i=0;$i<10;$i++){
  // zehn Wiederholungen
}

Schauen wir uns jetzt an, woraus die for-Schleife besteht.

for(){

}

Wie bei den vorherigen Schleifen werden alle Parameter der for-Schleife in runden Klammern geschrieben. Üblicherweise werden drei Parameter verwendet:

1. $i=0 – Initialisierung des Zählers, eine Variable, in der die aktuelle Wiederholungsnummer gespeichert wird.

2. $i<10 – die Bedingung, unter der die for-Schleife läuft.

3. $i++ – Erhöhung des Zählers um eins, um zur nächsten Wiederholung zu gelangen.