if else

In der Programmierung geht es oft darum, zu überprüfen, ob eine bestimmte Bedingung erfüllt ist, um dann eine Anweisung auszuführen oder, wenn die Bedingung nicht erfüllt ist, eine andere Anweisung auszuführen.

Beisielsweise könnte man abfragen ob ein User eingeloggt ist. Ist es der Fall erscheint sein Konto, ist er nicht eingeloggt erscheint die Login Seite.

Derartige bedingte Anweisungen oder Verzweigungen kann man mit einer if-Struktur erstellen. Nach dem if wird in Klammern eine Variable mit Datentyp Boolean oder ein Ausdruck der true oder false zurückgibt eingegeben.

Ist die Bedingung erfüllt / true wird die darauf folgende Anweisung oder Anweisungen ausgeführt.

Bedingungen werden mit Wahrheitswerten wie true oder false und mit Hilfe von Vergleichsoperatoren programmiert, wie < kleiner als, > größer als oder == für gleich.

$speed = 120;
if($speed < 50){
echo "Fahren Sie in diesem Tempo weiter"
}else{
echo "Fahren Sie langsamer.";
}

Man kann auch eine Boolsche Variable einfügen. Diese muss nicht auf true oder false überprüft werden, denn sie liefert ja diesen Wert.

$userLogin = true;
if($userLogin){
echo "Hello User";
}else{
echo "Please Login";
}

if(Bedingung true){
Fall A tritt in Kraft;
}else{
Fall B tritt in Kraft;
}

Man kann auch weitere Bedingungen definieren, die nacheinander abgearbeitet werden.

if (Bedingung1 true){
Anweisung 1;
} elseif(Bedingung2 true){
Anweisung 2;
} else{
Anweisung 3;
}

Hier ein Beispiel für eine Altersabfrage:

 $alter = 63;
if($alter < 16){
echo "Sie dürfen diesen Film nicht gucken.";
}elseif( $alter >= 16){
echo "Sie sind alt genug für diesen Film.";
} 

Vergleichsoperatoren

Vergleichsoperatoren liefern true oder false und können in if-Strukturen eingesetzt werden.
Weitere Vergleichsoperatoren(weitere Infos Vergleichsoperatoren)

Vergleichsoperatoren
Operator Info Beispiel Ergebnis
== gleich 3 == 3 true
!= ungleich 3 != 3 false
> größer als 3 > 2 true
< kleiner als 4 < 2 false
>= größer gleich 3 >= 3 true
<= kleiner gleich 3 <= 3 true

 

Logische Operatoren

Mehrere Bedingungen verknüpfen die alle erfüllt sein müssen
Hat man mehrere Bedingungen, die alle erfüllt sein müssen, werden diese mit 2 kaufmännischen unds && verknüpft. Dabei macht es Sinn, die einzelnen Bedingungen in Klammern einzuschließen. Dabei müssen alle Bedingungen erfüllt sein.

    $a = true;
    $b = false;
    $c = $a && $b; // Ergebnis false
   

Mehrere Bedingungen verknüpfen von denen mindestens eine erfüllt sein muss
Wenn nur eine von mehreren Bedigungen erfüllt sein muß, werden diese mit 2 Pipe-Zeichen || verbunden. Es liegt auf der Taste unten links mit den < Klammern.

Den Wahrheitswert umkehren

Das Ausrufezeichen ist ein unärer Operator er benötigt nur einen Wert. Damit wird der boolsche Wert umgekehrt aus true wird false oder aus false wird true;

$d = !true // Ergebnis false
Logische Operatoren
Operator Bedeutung Erklärung Beispiel Info
&& logisches Und Beides muss erfüllt sein $a < 6 && $a > 1 $a zwischen 2 und 5
|| oder Eins von beiden muss erfüllt sein $a < 6 || $a > 20 $a kleiner als 6 oder größer als 20
! Negation,

Verneinung aus true wird false, aus false wird true

Es ist ein unärer Operator weil er sich nur auf einen Wert bezieht.

!20 alles außer 20

Ternärer Bedingungsoperator

In einer bedingten Anweisung kann man je nach Abfrageergebnis Anweisungen ausführen. Das macht man mit einer if-else-Struktur. Eine einfachere Schreibweise erreicht man mit ternären Auswahloperator.

   $alter = 14;
   if($alter >= 18){
       echo "Herzlich willkommen.";
   }else{
       echo "Eintritt erst ab 18.";
   }

Es folgt die Alternative mit dem Auswahloperator. Man beachte die Schreibweise mit Fragezeichen ? und Doppelpunkt :

 $alter = 30;
($alter >= 18) ? echo "Herzliche Willkommen" : echo "Eintritt erst ab 18";

Bedingung ? True-Anweisung : Else-Anweisung;



Html und Php in einer If-Struktur verschachtelt

Html und PHP Elemente können ineinander verschachtelt sein. Sogar innerhalb des Anweisungsblocks in geschweiften Klammern. So wird der Html Code von der if Anweisung abhängig gemacht.

Hier erfolgt die Ausgabe in Html.
Der Wert beträgt 1
<?php
$wert=1;
if($wert==1){
?>
Hier erfolgt die Ausgabe in Html.<br>
<?php
echo "Der Wert beträgt ", $wert;
}
?>

 

Ausgeschrieben ohne geschweifte Klammern

Anstatt der geschweiften Klammern kann man auch diese Schreibweise mit Doppelpunkt und endif; einsetzen. Das elseif ist nicht erforderlich. Ein zusätzliches else ließe sich noch einsetzen. Siehe auch diese Auflistung verschiedener Schreibweisen.

a ist kleiner als b so siehts aus

<?php
$a=1;
$b = 2;
if ($a == $b):
echo "$a ist $b";
elseif ($a < $b):
echo "$a ist kleiner als $b";
endif;

?>

 


Switch-Anweisung

Wenn man eine Variable auf mehrere Bedingungen testen will, kann man sie mit if else verschachteln, oder man benutzt die Switch-Anweisung. Die Switch-Anweisung prüft, ob die Variable mit den aufgelisteten Werten übereinstimmt, wenn ja, wird die Anweisung ausgeführt.
Mit break werden weitere Prüfungen unterbunden.
Stimmt keiner der Werte überein, wird die Anweisung unter default ausgeführt.
switch ( Formel ) {
case wert1 :
Anweisung;
break;
case wert2 :
Anweisung;
break;
default :
Anweisung;
}

Dortmund: Pastors Wohnort <?php
$Ort="Dortmund";
switch ( $Ort) {
case "Warstein":
echo $Ort, ": Pastors Feriendomizil";
break;
case "Dortmund" :
echo $Ort, ": Pastors Wohnort";
break;
default :
echo "kein Wohnort vom Pastor";
}
?>

Match

Mit PHP 8.o gibt es den match-Ausdruck. Damit wird ein Wert zurück gegeben ähnlich wie bei einer Funktion mit Rückgabewert.

In folgendem Beispiel wird match() direkt echo zugewiesen dadurch wird "drei" direkt ausgegeben. Man könnte match() auch einer Variablen zuweisen.

Wichtig ist, dass man immer einen default Wert zuweist, sonst funktioniert es nicht.

Drei
$zZahl = 3;
echo match($zZahl){
1 => "Eins",
2 => "Zwei",
3 => "Drei",
default => "Kein gültiger Wert"
};

In folgendem Beispiel wird auf mehrere Werte geprüft, die mit Kommata getrennt aufgeführt werden. Hier wird match() einer Variablen zugewiesen.

Gerade Zahl
$zahl = 8;
$ergebnis =  match($zahl){
2,4,6,8,10 => "Gerade Zahl",
1,3,5,7,9 => "Ungerade Zahl",
default => "Kein gültiger Wert"
};
echo $ergebnis;

Webdesign / PHP / mySQL / Dreamweaver MX Tipps
Copyright © Michael Albers
www.pastorpixel.de