German (Deutsch) translation by Władysław Łucyszyn (you can also view the original English article)
Heute werden wir Kontrollstrukturen und Schleifen in PHP diskutieren. Ich werde Ihnen zeigen, wie Sie alle Hauptsteuerungsstrukturen verwenden, die in PHP unterstützt werden, z. B. if, else, for, foreach, while und mehr.
Was ist eine Kontrollstruktur?
In einfachen Worten, eine Kontrollstruktur ermöglicht es Ihnen, den Ablauf der Codeausführung in Ihrer Anwendung zu steuern. Im Allgemeinen wird ein Programm zeilenweise nacheinander ausgeführt, und eine Steuerungsstruktur ermöglicht es Ihnen, diesen Ablauf zu ändern, normalerweise abhängig von bestimmten Bedingungen.
Kontrollstrukturen sind Kernfunktionen der PHP-Sprache, mit denen Ihr Skript auf unterschiedliche Eingaben oder Situationen unterschiedlich reagieren kann. Auf diese Weise kann Ihr Skript je nach Benutzereingabe, Dateiinhalt oder anderen Daten unterschiedliche Antworten geben.
Das folgende Flussdiagramm erklärt, wie eine Kontrollstruktur in PHP funktioniert.

Wie Sie im obigen Diagramm sehen können, wird zunächst eine Bedingung überprüft. Wenn die Bedingung erfüllt ist, wird der bedingte Code ausgeführt. Hierbei ist zu beachten, dass die Codeausführung nach der bedingten Codeausführung normal fortgesetzt wird.
Betrachten wir das folgende Beispiel.

Im obigen Beispiel prüft das Programm, ob der Benutzer angemeldet ist oder nicht. Basierend auf dem Anmeldestatus des Benutzers werden sie entweder zur Login seite oder zur Seite My Account umgeleitet. In diesem Fall beendet eine Steuerungsstruktur die Codeausführung, indem Benutzer auf eine andere Seite umgeleitet werden. Dies ist eine entscheidende Fähigkeit der PHP-Sprache.
PHP unterstützt eine Reihe verschiedener Kontrollstrukturen:
if
else
elseif
switch
while
-
do
-while
for
foreach
- und mehr
Schauen wir uns einige dieser Kontrollstrukturen anhand von Beispielen an.
Gehen Sie die verschiedenen Kontrollstrukturen durch
Im vorherigen Abschnitt haben wir die Grundlagen von Kontrollstrukturen in PHP und deren Nützlichkeit bei der Anwendungsentwicklung gelernt. In diesem Abschnitt werden wir einige wichtige Kontrollstrukturen durchgehen, die Sie in Ihrer täglichen Anwendungsentwicklung häufig verwenden werden.
if
Mit dem if
-Konstrukt können Sie einen Code ausführen, wenn der mitgelieferte Ausdruck true ergibt.
Schauen wir uns das folgende Beispiel an, um zu verstehen, wie es tatsächlich funktioniert.
<?php $age = 50; if ($age > 30) { echo "Your age is greater than 30!"; } ?>
Das obige Beispiel sollte Folgendes ausgeben: Ihr Alter ist größer als 30!
Nachricht, da der Ausdruck als wahr ausgewertet wird. Wenn Sie nur eine einzelne Anweisung ausführen möchten, kann das obige Beispiel wie im folgenden Snippet ohne Klammern gezeigt neu geschrieben werden.
<?php $age = 50; if ($age > 30) echo "Your age is greater than 30!"; ?>
Wenn Sie jedoch mehr als eine Anweisung ausführen müssen, müssen Sie Klammern verwenden, wie im folgenden Snippet gezeigt.
<?php if (is_array($user)) { $user_id = isset($user['user_id']) ? $user['user_id'] : ''; $username = isset($user['username']) ? $user['username'] : ''; // and more statements... } ?>
Else
Im vorherigen Abschnitt haben wir das if
-Konstrukt erläutert, mit dem Sie einen Code ausführen können, wenn der Ausdruck true ergibt. Wenn der Ausdruck andererseits als falsch ausgewertet wird, wird er nichts tun. Meistens möchten Sie auch ein anderes Code-Snippet ausführen, wenn der Ausdruck falsch ergibt. Hier kommt die else
-Aussage ins Spiel.
Sie verwenden die else
-Anweisung immer in Verbindung mit einer if
-Anweisung. Grundsätzlich können Sie es wie im folgenden Pseudocode gezeigt definieren.
if (expression) { // code is executed if the expression evaluates to TRUE } else { // code is executed if the expression evaluates to FALSE }
Lassen Sie uns das vorherige Beispiel überarbeiten, um zu verstehen, wie es funktioniert.
<?php $age = 50; if ($age < 30) { echo "Your age is less than 30!"; } else { echo "Your age is greater than or equal 30!"; } ?>
Wenn Sie also zwei Auswahlmöglichkeiten haben und eine davon ausgeführt werden muss, können Sie das if-else
-Konstrukt verwenden.
Else If
Wir können die elseif
-Anweisung als Erweiterung des if-else
-Konstrukts betrachten. Wenn Sie mehr als zwei Optionen zur Auswahl haben, können Sie die elseif
-Anweisung verwenden.
Lassen Sie uns die Grundstruktur der elseif
-Anweisung untersuchen, wie im folgenden Pseudocode gezeigt.
if (expression1) { // code is executed if the expression1 evaluates to TRUE } elseif (expression2) { // code is executed if the expression2 evaluates to TRUE } elseif (expression3) { // code is executed if the expression3 evaluates to TRUE } else { // code is executed if the expression1, expression2 and expression3 evaluates to FALSE, a default choice }
Versuchen wir noch einmal, es anhand eines realen Beispiels zu verstehen.
<?php $age = 50; if ($age < 30) { echo "Your age is less than 30!"; } elseif ($age > 30 && $age < 40) { echo "Your age is between 30 and 40!"; } elseif ($age > 40 && $age < 50) { echo "Your age is between 40 and 50!"; } else { echo "Your age is greater than 50!"; } ?>
Wie Sie im obigen Beispiel sehen können, haben wir mehrere Bedingungen, daher haben wir eine Reihe von elseif
-Anweisungen verwendet. Für den Fall, dass alle if
-Bedingungen als falsch ausgewertet werden, wird der in der letzten else
-Anweisung angegebene Code ausgeführt.
Switch
Die switch-Anweisung ähnelt in gewisser Weise der elseif
-Anweisung, die wir gerade im vorherigen Abschnitt besprochen haben. Der einzige Unterschied ist der Ausdruck, der überprüft wird.
Im Fall der elseif
-Anweisung haben Sie eine Reihe verschiedener Bedingungen, und eine entsprechende Aktion wird basierend auf einer Bedingung ausgeführt. Wenn Sie andererseits eine Variable mit verschiedenen Werten vergleichen möchten, können Sie die switch
-Anweisung verwenden.
Wie üblich ist ein Beispiel der beste Weg, um die switch
-Anweisung zu verstehen.
<?php $favourite_site = 'Code'; switch ($favourite_site) { case 'Business': echo "My favourite site is business.tutsplus.com!"; break; case 'Code': echo "My favourite site is code.tutsplus.com!"; break; case 'Web Design': echo "My favourite site is webdesign.tutsplus.com!"; break; case 'Music': echo "My favourite site is music.tutsplus.com!"; break; case 'Photography': echo "My favourite site is photography.tutsplus.com!"; break; default: echo "I like everything at tutsplus.com!"; } ?>
Wie Sie im obigen Beispiel sehen können, möchten wir den Wert der Variablen $favourite_site
überprüfen und basierend auf dem Wert der Variablen $favourite_site
eine Nachricht drucken.
Für jeden Wert, den Sie mit der Variablen $favourite_site
überprüfen möchten, müssen Sie den case
-Block definieren. Wenn der Wert mit einem Fall übereinstimmt, wird der diesem Fallblock zugeordnete Code ausgeführt. Danach müssen Sie die break
-Anweisung verwenden, um die Codeausführung zu beenden. Wenn Sie die break
-Anweisung nicht verwenden, wird die Skriptausführung bis zum letzten Block in der switch-Anweisung fortgesetzt.
Wenn Sie einen Code ausführen möchten, wenn der Wert der Variablen in keinem Fall übereinstimmt, können Sie ihn unter dem default
block definieren. Natürlich ist dies nicht obligatorisch - es ist nur eine Möglichkeit, einen default fall bereitzustellen.
Das ist also die Geschichte von bedingten Kontrollstrukturen. Wir werden im nächsten Abschnitt Schleifen in PHP diskutieren.
Schleifen
Schleifen in PHP sind nützlich, wenn Sie einen Code wiederholt ausführen möchten, bis eine Bedingung als falsch ausgewertet wird. Code wird also wiederholt ausgeführt, solange eine Bedingung als wahr ausgewertet wird. Sobald die Bedingung als falsch ausgewertet wird, führt das Skript den Code nach der Schleife weiter aus.
Das folgende Flussdiagramm erklärt, wie Schleifen in PHP funktionieren.

Wie Sie im obigen Screenshot sehen können, enthält eine Schleife eine Bedingung. Wenn die Bedingung als wahr ausgewertet wird, wird der bedingte Code ausgeführt. Nach der Ausführung des Bedingungscodes kehrt die Steuerung zur Schleifenbedingung zurück, und der Fluss wird fortgesetzt, bis die Bedingung als falsch ausgewertet wird.
In diesem Abschnitt werden die verschiedenen Arten von Schleifen beschrieben, die in PHP unterstützt werden.
While-Schleife
Die while
-Schleife wird verwendet, wenn Sie einen Code wiederholt ausführen möchten, bis die while
-Bedingung als false ausgewertet wird.
Sie können es wie im folgenden Pseudocode gezeigt definieren.
while (expression) { // code to execute as long as expression evaluates to TRUE }
Schauen wir uns ein Beispiel aus der Praxis an, um zu verstehen, wie die while
-Schleife in PHP funktioniert.
<?php $max = 0; echo $i = 0; echo ","; echo $j = 1; echo ","; $result=0; while ($max < 10 ) { $result = $i + $j; $i = $j; $j = $result; $max = $max + 1; echo $result; echo ","; } ?>
Wenn Sie mit der Fibonacci-Reihe vertraut sind, erkennen Sie möglicherweise, was das obige Programm tut - es gibt die Fibonacci-Reihe für die ersten zehn Zahlen aus. Die while
-Schleife wird im Allgemeinen verwendet, wenn Sie nicht wissen, wie viele Iterationen in einer Schleife stattfinden sollen.
Do-While-Schleife
Die do-while
-Schleife ist der while
-Schleife sehr ähnlich, mit dem einzigen Unterschied, dass die while-Bedingung am Ende der ersten Iteration überprüft wird. Somit können wir garantieren, dass der Schleifencode unabhängig vom Ergebnis des while-Ausdrucks mindestens einmal ausgeführt wird.
Schauen wir uns die Syntax der do-while
-Schleife an.
do { // code to execute } while (expression);
Lassen Sie uns eine reale Welt durchgehen, um mögliche Anwendungsfälle zu verstehen, in denen Sie die do-while
-Schleife verwenden können.
<?php $handle = fopen("file.txt", "r"); if ($handle) { do { $line = fgets($handle); // process the line content } while($line !== false); } fclose($handle); ?>
Im obigen Beispiel versuchen wir, eine Datei Zeile für Zeile zu lesen. Erstens haben wir eine Datei zum Lesen geöffnet. In unserem Fall sind wir uns nicht sicher, ob die Datei überhaupt Inhalt enthält. Daher müssen wir die Funktion fgets
mindestens einmal ausführen, um zu überprüfen, ob eine Datei Inhalt enthält. Wir können hier also die do-while
-Schleife verwenden. do-while
wertet die Bedingung nach der ersten Iteration der Schleife aus.
For-Schleife
Im Allgemeinen wird die for
-Schleife verwendet, um einen Code für eine bestimmte Anzahl von Malen auszuführen. Mit anderen Worten, wenn Sie bereits wissen, wie oft Sie einen Codeblock ausführen möchten, ist die for
-Schleife die beste Wahl.
Schauen wir uns die Syntax der for
-Schleife an.
for (expr1; expr2; expr3) { // code to execute }
Der Ausdruck expr1
wird zum Initialisieren von Variablen verwendet und immer ausgeführt. Der Ausdruck expr2
wird auch am Anfang einer Schleife ausgeführt. Wenn er als wahr ausgewertet wird, wird der Schleifencode ausgeführt. Nach der Ausführung des Schleifencodes wird expr3
ausgeführt. Im Allgemeinen wird der expr3
verwendet, um den Wert einer Variablen zu ändern, die im Ausdruck expr2
verwendet wird.
Lassen Sie uns das folgende Beispiel durchgehen, um zu sehen, wie es funktioniert.
<?php for ($i=1; $i<=10; ++$i) { echo sprintf("The square of %d is %d.</br>", $i, $i*$i); } ?>
Das obige Programm gibt das Quadrat der ersten zehn Zahlen aus. Es initialisiert $i
auf 1, wiederholt, solange $i
kleiner oder gleich 10 ist, und addiert bei jeder Iteration 1 zu $i
.
For Each
Die foreach
-Schleife wird verwendet, um Array-Variablen zu durchlaufen. Wenn Sie eine Array-Variable haben und jedes Element dieses Arrays durchgehen möchten, ist die foreach
-Schleife die beste Wahl.
Schauen wir uns einige Beispiele an.
<?php $fruits = array('apple', 'banana', 'orange', 'grapes'); foreach ($fruits as $fruit) { echo $fruit; echo "<br/>"; } $employee = array('name' => 'John Smith', 'age' => 30, 'profession' => 'Software Engineer'); foreach ($employee as $key => $value) { echo sprintf("%s: %s</br>", $key, $value); echo "<br/>"; } ?>
Wenn Sie auf Array-Werte zugreifen möchten, können Sie die erste Version der foreach
-Schleife verwenden, wie im obigen Beispiel gezeigt. Wenn Sie jedoch sowohl auf einen Schlüssel als auch auf einen Wert zugreifen möchten, können Sie dies wie im obigen Beispiel für $employee
gezeigt tun.
Abschluss
In diesem Artikel haben wir verschiedene Kontrollstrukturen und Schleifen in PHP diskutiert. Sie sind ein wesentlicher Bestandteil von PHP - oder einer beliebigen Programmiersprache.
Ich hoffe, Ihnen hat dieser Artikel gefallen, und wenn Sie Fragen haben, können Sie diese gerne über den unten stehenden Feed stellen!
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Update me weeklyEnvato Tuts+ tutorials are translated into other languages by our community members—you can be involved too!
Translate this post