Die if-anweisung if (Bedingung 1) { Code 1 else { Code 2 ; Anm.1: Das ; kann entfallen, da innerhalb { ein sog. Codeblock geschrieben wird. Anm.2: Es gibt noch andere Schreibweisen, aber wir wollen uns auf diese einigen. Erweiterung: if (Bedingung 1) { Code 1 elseif (Bedingung 2) { Code 2 else { Code 3 ; Für die Formulierung der "Bedingungen" brauchen wir sog.... Vergleichsoperatoren < Kleiner als > Größer als <= Kleiner gleich >= Größer gleich == Gleich!= Ungleich === Identisch!== Nicht Identisch Beispiele für Vergleichsoperatoren Beispiel Ergebnis 12 == 12 true 12 == 21 false 4 === 7 true 4 === "vier" false 4 === 4.0 false 12!= 13 true 12!== 12 false 12!== 12.0 true 1 < 3 true 3 < 1 false 5 >= 13 false 5 >= 3 true 5 >= 5.0 true Grundlagen PHP-Syntax III - 1 (7)
Logische Operatoren Mit logischen Operatoren werden Teilausdrücke miteinander verknüpft: && and Und: if($a = 5 && $b > 3.1) {... (A && B) ist nur dann true, wenn beide true sind, andernfalls false or Oder: if($a = 5 or $b > 3.1) {... (A or B) dann true, wenn einer der beiden true ist, andernfalls false xor Entweder-oder : if($a = 5 xor $b > 3.1) {... (A xor B) dann true, wenn einer der beiden, aber nicht beide true sind, andernfalls false! Nicht: if(!$bool) {... (!A) ist true, wenn A vorher false und umgekehrt Wahrheitstabelle: 1. Operand A 2. Operand B A and B A or B A xor B true true true true false true false false true true false true false true true false false false false false $a = 5; $b = 7; if ( ($a*$b) >= 30 ) { print ("Ergebnis ist größergleich 30!"); else { print ("Ergebnis ist kleiner als 30!");; Ergebnis ist größergleich 30! Grundlagen PHP-Syntax III - 2 (7)
Zeichenkettenoperatoren Verbindung von zwei Zeichenketten (strings) über "Konkatenationsoperator." $str1 = "Dies ist"; $str2 = "eine Verknüpfung von 2 strings"; $str3 = $str1. $str2; print ($str3); Dies isteine Verknüpfung von 2 strings Kurzschreibweise der Verknüpfung:.= $str = "Dies ist "; $str.= "die Erweiterung eines strings"; print ($str); Dies ist die Erweiterung eines strings Die Rangfolge von Operatoren Bei den arithmetischen Operatoren gilt die mathematische Grundregel "Punktrechnung vor Strichrechnung". Grundsätzlich sollten Klammern gesetzt werden, wenn Sie sich über die Rangfolge der Operatoren im Unklaren sind! $a = 2; $b = 3; $c = 4; $erg = $a + $b * $c; // $erg = 14 $erg = ($a + $b) * $c; // $erg = 20 Rangfolge, d.h. die Reihenfolge der Ränge von links nach rechts zu lesen: ++ -- * / % + -. < <= > >= ==!= && = and xor or $a = 2; $b = 3; $c = 4; if ( $a==2 $b==2 and $c<2 ) print ("1. Test Rangfolge!"); if ( $a==2 or $b==2 and $c<2 ) print ("2. Test Rangfolge!"); if ( ($a==2 or $b==2) and $c<2 ) print ("3. Test Rangfolge!"); 2. Test Rangfolge! Grundlagen PHP-Syntax III - 3 (7)
Die switch-case-anweisung Die switch-case-anweisung stellt eine alternative zur if-anweisung dar. Hier wird eine Variable zur Überprüfung angegeben, anschließend können mehrere mögliche Fälle abgearbeitet werden: switch (Variable) { case Varwert1: Anweisung1; case Varwert2: Anweisung2; Anm. 1: Die switch-case-anweisung darf NICHT mit einem ; beendet werden! Anm. 2: Das "" am Ende des "case" dient dazu, aus der Anweisung nach Abarbeitung "heraus" zu springen. Wenn es vergessen wird, werden auch alle nachfolgenden Anweisungen ausgeführt! $a = 1; switch ($a) { case -1: print ("Die Variable hat den Wert -1"); case 0: print ("Die Variable hat den Wert 0"); case 1: print ("Die Variable hat den Wert 1"); case 2: print ("Die Variable hat den Wert 2"); Die Variable hat den Wert 1 Grundlagen PHP-Syntax III - 4 (7)
Schleifen Die while-schleife Die einfachste Form einer Schleife ist die while-schleife, bei der ein Anweisungsblock so lange durchlaufen und wiederholt wird, bis die zu Beginn der Schleife formulierte Bedingung nicht mehr zutrifft, d.h. "false" ist, oder aber über ein "" vorzeitig abgebrochen wird. while ( Bedingung ) { Anweisungen 1. $gesamt = 0; $i = 1; while ( $i <= 10) { $gesamt = $gesamt + 4; $i = $i+1; 1. gesamt = 4 2. gesamt = 8 3. gesamt = 12 4. gesamt = 16 5. gesamt = 20 6. gesamt = 24 7. gesamt = 28 8. gesamt = 32 9. gesamt = 36 10. gesamt = 40 2. Beispiel mit einfachem break: $gesamt = 0; $i = 1; while ( $i <= 10) { if ($gesamt > 15) $gesamt = $gesamt + 4; $i = $i+1; 1. gesamt = 4 2. gesamt = 8 3. gesamt = 12 4. gesamt = 16 Grundlagen PHP-Syntax III - 5 (7)
3. Beispiel mit Verschachtelung und break"x" ("x" ist die Zahl, die angibt, wieviele Ebenen von Schleifenstrukturen verlassen werden sollen): $i = 1; $j = 0; while ( $i < 10 ) { while ( $j < 10 ) { $i++; $j=$j+3; if ($j >= 10) break 2; print ("i = $i<br>"); print ("j = $j<br>"); i = 5 j = 12 Die do...while-schleife Die do...while-schleife gehört zur Gruppe der sog. nachprüfenden Schleifen, d.h. dass sie mindestens einmal durchlaufen wird. Der Anweisungsblock wird auch hier so lange durchlaufen, wie die Bedingung "true" ist: do { Anweisungen while ( Bedingung ); $i = 0; do { $i++; echo "$i. Durchlauf<br>"; while ($i<=5); 1. Durchlauf 2. Durchlauf 3. Durchlauf 4. Durchlauf 5. Durchlauf 6. Durchlauf Grundlagen PHP-Syntax III - 6 (7)
Die for-schleife Ähnlich wie die while-schleife, aber mit Zählerinitialisierung und Manipulation des Zählers, daher häufig kürzer in der Schreibweise und einfacher zu lesen: for ( Initialisierung; Laufbedingung; Schrittweite ) { Anweisungen 1. $gesamt = 0; for ( $i=0; $i <= 10; $i = $i+1) { $gesamt = $gesamt + 4; Ausgabe (Beachten Sie den Unterschied zum 1. Beispiel der while-schleife!!): 0. gesamt = 4 1. gesamt = 8 2. gesamt = 12 3. gesamt = 16 4. gesamt = 20 5. gesamt = 24 6. gesamt = 28 7. gesamt = 32 8. gesamt = 36 9. gesamt = 40 10. gesamt = 44 2. Beispiel mit 2 Laufvariablen: $gesamt = 0; for ( $i=0, $j=1; $i <= 4; $i = $i+1, $j =$j*2) { $gesamt = $gesamt + $j ; 0. gesamt = 1 1. gesamt = 3 2. gesamt = 7 3. gesamt = 15 4. gesamt = 31 Endlosschleifen sind "peinliche" Programmierfehler, bei denen eine Schleife formuliert wird, die niemals endet: $a = 1; do { echo "Immer wieder!"; while ($a > 0); Grundlagen PHP-Syntax III - 7 (7)