1. Code
  2. PHP
  3. PHP Scripts

PHP-Kontrollstrukturen und -Schleifen: if, else, for, foreach, while und mehr

Scroll to top

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.

If Condition FlowIf Condition FlowIf Condition Flow

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.

If-Else Condition FlowIf-Else Condition FlowIf-Else Condition Flow

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.

1
<?php
2
$age = 50;
3
4
if ($age > 30)
5
{
6
  echo "Your age is greater than 30!";
7
}
8
?>

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.

1
<?php
2
$age = 50;
3
4
if ($age > 30)
5
  echo "Your age is greater than 30!";
6
?>

Wenn Sie jedoch mehr als eine Anweisung ausführen müssen, müssen Sie Klammern verwenden, wie im folgenden Snippet gezeigt.

1
<?php
2
if (is_array($user))
3
{
4
  $user_id = isset($user['user_id']) ? $user['user_id'] : '';
5
  $username = isset($user['username']) ? $user['username'] : '';
6
  // and more statements...

7
}
8
?>

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.

1
if (expression)
2
{
3
  // code is executed if the expression evaluates to TRUE

4
}
5
else
6
{
7
  // code is executed if the expression evaluates to FALSE

8
}

Lassen Sie uns das vorherige Beispiel überarbeiten, um zu verstehen, wie es funktioniert.

1
<?php
2
$age = 50;
3
4
if ($age < 30)
5
{
6
  echo "Your age is less than 30!";
7
}
8
else
9
{
10
  echo "Your age is greater than or equal 30!";
11
}
12
?>

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.

1
if (expression1)
2
{
3
  // code is executed if the expression1 evaluates to TRUE

4
}
5
elseif (expression2)
6
{
7
  // code is executed if the expression2 evaluates to TRUE

8
}
9
elseif (expression3)
10
{
11
  // code is executed if the expression3 evaluates to TRUE

12
}
13
else
14
{
15
  // code is executed if the expression1, expression2 and expression3 evaluates to FALSE, a default choice

16
}

Versuchen wir noch einmal, es anhand eines realen Beispiels zu verstehen.

1
<?php
2
$age = 50;
3
4
if ($age < 30)
5
{
6
  echo "Your age is less than 30!";
7
}
8
elseif ($age > 30 && $age < 40)
9
{
10
  echo "Your age is between 30 and 40!";
11
}
12
elseif ($age > 40 && $age < 50)
13
{
14
  echo "Your age is between 40 and 50!";
15
}
16
else
17
{
18
  echo "Your age is greater than 50!";
19
}
20
?>

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.

1
<?php
2
$favourite_site = 'Code';
3
4
switch ($favourite_site) {
5
  case 'Business':
6
    echo "My favourite site is business.tutsplus.com!";
7
    break;
8
  case 'Code':
9
    echo "My favourite site is code.tutsplus.com!";
10
    break;
11
  case 'Web Design':
12
    echo "My favourite site is webdesign.tutsplus.com!";
13
    break;
14
  case 'Music':
15
    echo "My favourite site is music.tutsplus.com!";
16
    break;
17
  case 'Photography':
18
    echo "My favourite site is photography.tutsplus.com!";
19
    break;
20
  default:
21
    echo "I like everything at tutsplus.com!";
22
}
23
?>

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.

Loop FlowLoop FlowLoop Flow

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.

1
while (expression)
2
{
3
  // code to execute as long as expression evaluates to TRUE

4
}

Schauen wir uns ein Beispiel aus der Praxis an, um zu verstehen, wie die while-Schleife in PHP funktioniert.

1
<?php  
2
$max = 0;  
3
echo $i = 0;
4
echo ",";
5
echo $j = 1;  
6
echo ",";
7
$result=0;
8
9
while ($max < 10 )  
10
{  
11
    $result = $i + $j;  
12
13
    $i = $j;  
14
    $j = $result;  
15
16
    $max = $max + 1;  
17
    echo $result;
18
    echo ",";
19
}
20
?>

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.

1
do
2
{
3
  // code to execute

4
} 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.

1
<?php
2
$handle = fopen("file.txt", "r");
3
if ($handle)
4
{
5
    do
6
    {
7
        $line = fgets($handle);
8
9
        // process the line content

10
11
    } while($line !== false);
12
}
13
fclose($handle);
14
?>

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.

1
for (expr1; expr2; expr3)
2
{
3
  // code to execute

4
}

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.

1
<?php
2
for ($i=1; $i<=10; ++$i)
3
{
4
  echo sprintf("The square of %d is %d.</br>", $i, $i*$i);
5
}
6
?>

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.

1
<?php
2
$fruits = array('apple', 'banana', 'orange', 'grapes');
3
foreach ($fruits as $fruit)
4
{
5
  echo $fruit;
6
  echo "<br/>";
7
}
8
9
$employee = array('name' => 'John Smith', 'age' => 30, 'profession' => 'Software Engineer');
10
foreach ($employee as $key => $value)
11
{
12
  echo sprintf("%s: %s</br>", $key, $value);
13
  echo "<br/>";
14
}
15
?>

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!