Suche…


Alternative Syntax für Kontrollstrukturen

PHP bietet eine alternative Syntax für einige Kontrollstrukturen: if , while , for , foreach und switch .

Wenn auf die normale Syntax verglichen, der Unterschied ist, dass die Öffnungsstrebe durch einen Doppelpunkt ersetzt wird ( : ) und die schließende Klammer ersetzt durch endif; endwhile; endfor; endforeach; oder endswitch; , beziehungsweise. Einzelne Beispiele finden Sie im Thema zu alternativer Syntax für Kontrollstrukturen .

if ($a == 42):
    echo "The answer to life, the universe and everything is 42.";
endif;

Mehrere elseif Anweisungen mit kurzer Syntax:

if ($a == 5):
    echo "a equals 5";
elseif ($a == 6):
    echo "a equals 6";
else:
    echo "a is neither 5 nor 6";
endif;

PHP Manual - Kontrollstrukturen - Alternative Syntax

während

while Schleife durchläuft einen Codeblock, solange eine angegebene Bedingung erfüllt ist.

$i = 1;
while ($i < 10) {
    echo $i;
    $i++;
}

Ausgabe: 123456789

Ausführliche Informationen finden Sie im Thema Schleifen .

mache

do-while Schleife führt in jedem Fall zuerst einmal einen Codeblock aus und durchläuft dann diesen Codeblock, solange eine angegebene Bedingung erfüllt ist.

$i = 0;
do {
    $i++;
    echo $i;
} while ($i < 10);

Output: `12345678910`

Ausführliche Informationen finden Sie im Thema Schleifen .

gehe zu

Mit dem Operator goto können Sie zu einem anderen Abschnitt des Programms springen. Es ist seit PHP 5.3 verfügbar.

Der goto-Befehl ist ein goto, gefolgt vom gewünschten goto MyLabel; : goto MyLabel; .

Das Ziel des Sprungs wird durch eine Beschriftung gefolgt von einem Doppelpunkt angegeben: MyLabel:

Dieses Beispiel druckt Hello World! :

<?php
goto MyLabel;
echo 'This text will be skipped, because of the jump.';
 
MyLabel:
echo 'Hello World!';
?>

erklären

declare wird eine Ausführungsanweisung für einen Codeblock festgelegt.

Folgende Richtlinien werden anerkannt:

Setzen Sie zum Beispiel Ticks auf 1:

declare(ticks=1);

Um den strikten strict_types zu aktivieren, wird die declare mit der strict_types Deklaration verwendet:

declare(strict_types=1);

ansonsten

Die if -Anweisung im obigen Beispiel ermöglicht die Ausführung eines Codefragments, wenn die Bedingung erfüllt ist. Wenn Sie ein Codefragment ausführen möchten und die Bedingung nicht erfüllt ist, erweitern Sie das if um ein else .

if ($a > $b) {
  echo "a is greater than b";
} else {
  echo "a is NOT greater than b";
}

PHP Manual - Kontrollstrukturen - Sonst

Der ternäre Operator als Abkürzungssyntax für if-else

Der ternäre Operator bewertet etwas basierend auf einer Bedingung, die wahr ist oder nicht. Es ist ein Vergleichsoperator und wird häufig verwendet, um eine einfache if-else-Bedingung in einer kürzeren Form auszudrücken. Es ermöglicht das schnelle Testen einer Bedingung und ersetzt häufig eine mehrzeilige if-Anweisung, wodurch der Code kompakter wird.

Dies ist das Beispiel von oben, das einen ternären Ausdruck und Variablenwerte verwendet: $a=1; $b=2;

echo ($a > $b) ? "a is greater than b" : "a is NOT greater than b";

Ausgaben: a is NOT greater than b .

einschließen & erfordern

benötigen

require ähnlich include , mit der Ausnahme , dass es einen fatalen produziert E_COMPILE_ERROR Level - Fehler bei einem Fehler. Wenn die require fehlschlägt, wird das Skript angehalten. Wenn das include fehlschlägt, wird das Skript nicht E_WARNING und nur E_WARNING .

require 'file.php';

PHP Manual - Kontrollstrukturen - erforderlich

umfassen

Die include Anweisung schließt eine Datei ein und wertet sie aus.

./variablen.php

$a = 'Hello World!';

. / main.php`

include 'variables.php';
echo $a;
// Output: `Hello World!`

Seien Sie vorsichtig mit diesem Ansatz, da er als Codegeruch angesehen wird , da die enthaltene Datei die Menge und den Inhalt der definierten Variablen im angegebenen Bereich ändert.


Sie können auch include Datei include , die einen Wert zurückgibt. Dies ist äußerst nützlich für die Handhabung von Konfigurations-Arrays:

configuration.php

<?php 
return [
    'dbname' => 'my db',
    'user' => 'admin',
    'pass' => 'password',
];

main.php

<?php
$config = include 'configuration.php';

Dieser Ansatz verhindert, dass die eingeschlossene Datei Ihren aktuellen Bereich mit geänderten oder hinzugefügten Variablen verschmutzt.

PHP Manual - Kontrollstrukturen - Include


include & requir kann auch verwendet werden, um einer Variablen Werte zuzuweisen, wenn etwas von Datei zurückgegeben wird.

Beispiel:

include1.php-Datei:

<?php
    $a = "This is to be returned";

    return $a;
?>

Datei index.php:

    $value = include 'include1.php';
   // Here, $value = "This is to be returned"

Rückkehr

Die return Anweisung gibt die Programmsteuerung an die aufrufende Funktion zurück.

Wenn return innerhalb einer Funktion aufgerufen wird, wird die Ausführung der aktuellen Funktion beendet.

function returnEndsFunctions()
{
   echo 'This is executed';
   return;
   echo 'This is not executed.';
}

Wenn Sie returnEndsFunctions(); Sie erhalten die Ausgabe. This is executed .

Wenn return aus einer Funktion mit einem Argument aufgerufen wird, endet die Ausführung der aktuellen Funktion und der Wert des Arguments wird an die aufrufende Funktion zurückgegeben.

zum

for Schleifen werden normalerweise verwendet, wenn Sie einen Code haben, den Sie eine bestimmte Anzahl von Wiederholungen wiederholen möchten.

for ($i = 1; $i < 10; $i++) {
    echo $i;
}

Ausgaben: 123456789

Ausführliche Informationen finden Sie im Thema Schleifen .

für jeden

foreach ist ein Konstrukt, mit dem Sie Arrays und Objekte leicht durchlaufen können.

$array = [1, 2, 3];
foreach ($array as $value) {
    echo $value;
}

Ausgänge: 123 .

Um die foreach Schleife mit einem Objekt verwenden zu können, muss die Iterator Schnittstelle implementiert werden.

Wenn Sie assoziative Arrays durchlaufen:

$array = ['color'=>'red']; 

foreach($array as $key => $value){
    echo $key . ': ' . $value; 
}

Ausgänge: color: red

Ausführliche Informationen finden Sie im Thema Schleifen .

wenn sonst noch

elseif

elseif kombiniert if und else . Die if Anweisung wird erweitert, um eine andere Anweisung auszuführen, falls der ursprüngliche if Ausdruck nicht erfüllt ist. Der alternative Ausdruck wird jedoch nur ausgeführt, wenn der elseif Bedingungsausdruck erfüllt ist.

Der folgende Code zeigt entweder "a ist größer als b", "a ist b" oder "a ist kleiner als b":

if ($a > $b) {
    echo "a is bigger than b";
} elseif ($a == $b) {
    echo "a is equal to b";
} else {
    echo "a is smaller than b";
}

Mehrere elseif-Anweisungen

Sie können mehrere elseif-Anweisungen innerhalb derselben if-Anweisung verwenden:

if ($a == 1) {
    echo "a is One";
} elseif ($a == 2) {
    echo "a is Two";
} elseif ($a == 3) {
    echo "a is Three";
} else {
    echo "a is not One, not Two nor Three";
}

ob

Das if-Konstrukt ermöglicht die bedingte Ausführung von Codefragmenten.

if ($a > $b) {
  echo "a is bigger than b";
}

PHP Manual - Kontrollstrukturen - Wenn

Schalter

Die switch Struktur hat dieselbe Funktion wie eine Reihe von if Anweisungen, kann jedoch die Aufgabe in weniger Codezeilen erledigen. Der zu testende Wert, wie in der switch Anweisung definiert, wird auf Gleichheit mit den Werten in jeder der case Anweisungen verglichen, bis eine Übereinstimmung gefunden wird und der Code in diesem Block ausgeführt wird. Wenn keine übereinstimmende case Anweisung gefunden wird, wird der Code im default ausgeführt, sofern er existiert.

Jeder Codeblock in einer case oder default Anweisung sollte mit der break Anweisung enden. Dies stoppt die Ausführung der switch Struktur und setzt die Codeausführung unmittelbar danach fort. Wenn die break Anweisung nicht angegeben wird, wird der Code der nächsten case Anweisung ausgeführt, auch wenn keine Übereinstimmung vorliegt. Dies kann zu einer unerwarteten Codeausführung führen, wenn die break Anweisung vergessen wird. Es kann jedoch auch nützlich sein, wenn mehrere case Anweisungen denselben Code verwenden müssen.

switch ($colour) {
case "red":
    echo "the colour is red";
    break;
case "green":
case "blue":
    echo "the colour is green or blue";
    break;
case "yellow":
    echo "the colour is yellow";
    // note missing break, the next block will also be executed
case "black":
    echo "the colour is black";
    break;
default:
    echo "the colour is something else";
    break;
}

Zusätzlich zum Testen fester Werte kann das Konstrukt auch zum Testen dynamischer Anweisungen gezwungen werden, indem der switch Anweisung ein boolescher Wert und der case Anweisung ein beliebiger Ausdruck bereitgestellt case . Denken Sie daran, dass der erste übereinstimmende Wert verwendet wird, so dass der folgende Code "mehr als 100" ausgibt:

$i = 1048;
switch (true) {
case ($i > 0):
    echo "more than 0";
    break;
case ($i > 100):
    echo "more than 100";
    break;
case ($i > 1000):
    echo "more than 1000";
    break;
}

Informationen zu möglichen Problemen mit losem Tippen während der Verwendung des switch Konstrukts finden Sie unter Switch-Überraschungen



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow