Web.Development Seminar / Operatoren & Kontrollstrukturen
Eine passende Übungsaufgabe & Beispiele Nr. 5 der verschiedenen Operatoren.
Zuweisungs Operatoren
Bereits bei den Variablen Typen haben wir den Zuweisungs Operator '=' kennen gelernt. Dabei bedeutet das = nicht "gleich" sondern weisst dem linken Operanden den Wert des Ausdrucks auf der rechten Seite zu.
<? # Zuweisung
$wertplatzhalter = 123; // einfache
$wertinhalt = ($wertplatzhalter =123) - 23; // geschachtelte
// $wertplatzhalter = 123
// $wertinhalt = 100
?>
|
Arithmetische Operatoren
Mit den geläufigen Operatoren lassen sich auch in PHP die Grundrechenarten einfach abbilden.
12 + 5 | Addition | Summe von 12 und 5 = 17. |
12 - 5 | Subtraktion | Differenz von 12 und 5 = 7. |
12 * 3 | Multiplikation | Produkt von 12 und 3 = 36. |
12 / 3 | Division | Quotient von 12 und 3 = 4. |
23 % 12 | Modulus | Rest von 23 geteilt durch 12 = 11. |
<? # Arithmetische Operatoren
$zahl = 10;
print 12 + 3; // 15
print 12 - 3; // 9
print 12 * 3; // 36
print 12 / 3; // 4
print 12 % 5; // 2
print (12 + 3) * $zahl; // 150
print 12 + 3 * $zahl; // 42
?>
|
- Hint: Klammern werden wie gewohnt geschachtelt verwendet.
Vergleichs Operatoren
Vergleichs Operatoren sind für alle Kontrollstrukturen elementar.
PHP liefert bei einem positivem Vergleichsergebnis ein TRUE oder im negativen Fall ein FALSE zurück.
$wert == 42 | Gleich | Gibt TRUE zurück, wenn $wert gleich 42 ist. |
$wert === 42 | Identisch | Gibt TRUE zurück wenn $wert gleich 42 ist und beide vom gleichen Typ sind(nur PHP 4). |
$wert != 42 | Ungleich | Gibt TRUE zurück, wenn $wert nicht gleich 42 ist. |
$wert <> 42 | Ungleich | Gibt TRUE zurück, wenn $wert nicht gleich 42 ist. |
$wert !== 42 | Nicht identisch | Gibt TRUE zurück, wenn $wert nicht gleich 42 ist, oder wenn beide nicht vom gleichen Typ sind (nur PHP 4). |
$wert < 42 | Kleiner Als | Gibt TRUE zurück, wenn $wert kleiner als 42 ist. |
$wert > 42 | Größer Als | Gibt TRUE zurück, wenn $wert größer als 42 ist. |
$wert <= 42 | Kleiner Gleich | Gibt TRUE zurück, wenn $wert kleiner oder gleich 42 ist. |
$wert >= 42 | Größer Gleich | Gibt TRUE zurück, wenn $wert größer oder gleich 42 ist. |
einfache Beispiele:
<? # Vergleichs Operatoren
# Mit einem kleinem Vorgriff auf if Kontrollstrukturen
if ( $zahl == 10 ) { print "Beispiel 1 WAHR"; }
if ( $zahl*2 >= 10 ) { print "Beispiel 2 WAHR"; }
if ( $zahl < 10 ) { print "Beispiel 3 WAHR"; }
if ( 10 != $zahl ) { print "Beispiel 4 WAHR"; }
?>
|
Logische Operatoren
lle Verknüpfungen und/oder/nicht stellt auch PHP zur Verfügung im Zusammenspiel mit Vergleichsoperatoren lassen sich somit alle erforderlichen Bediengungsprüfungen realisieren. z.B. Vergleich a [$a == 12] oder [or] Vergleich b [$a < 12].
$variable and $wert | Und | TRUE wenn sowohl $variable als auch $wert TRUE ist. |
$variable or $wert | Oder | TRUE wenn $variable oder $wert TRUE ist. |
$variable xor $wert | Entweder Oder | TRUE wenn entweder $variable oder $wert TRUE ist, aber nicht beide. |
! $variable | Nicht | TRUE wenn $variable nicht TRUE ist. |
$variable && $wert | Und | TRUE wenn sowohl $variable als auch $wert TRUE ist. |
$variable || $wert | Oder | TRUE wenn $variable oder $wert TRUE ist. |
einfache Beispiele:
<? # Logische Operatoren
# Mit einem kleinem Vorgriff auf if Kontrollstrukturen
if ( $zahl and 10 ) { print "Beispiel 1 WAHR"; }
if ( $zahl or 10 ) { print "Beispiel 2 WAHR"; }
if ( $zahl xor 10 ) { print "Beispiel 3 WAHR"; }
if ( 10 <= $zahl or $zahl == 12) { print "Beispiel 4 WAHR"; }
?>
|
Eine passende Übungsaufgabe & Beispiele Nr. 5 der verschiedenen Operatoren.
Kontrollstrukturen
Dazu eine passende Übungsaufgabe & Beispiele Nr. 6
if/else/elseif Kontrollstrukturen
Um die prozedural Ablaufende PHP Skript Interpretation Steuern zu können, gibt es sogenannte Kontrollstrukturen.
Mit Ihrere Hilfe kann auf veränderte Parameter (z.B. Usereingaben) reagiert werden. Unter den Einfachen Kontrollstrukturen versteht man Abfrageabzweigungen (Wenn eine Bediengung erfüllt ist dann mache folgendes... [if] ansonsten mach etwas anderes [else]).
In einem späteren Kapitel wird auf komplexere Kontrollstrukturen z.B. Schleifen eingegangen.
Die Einfachste Form:
- [ if (BEDINGUNG == TRUE) ]
Wenn irgenndeine Bedingung erfüllt ist dann tue etwas
- [ elseif (BEDINGUNG == TRUE) ]
Ist statt dessen eine andere Bedingung erfüllt dann tue statt der oberen Anweisung
- [ else ]
Wenn keine Bediengung erfüllt ist dann tue statt dessen...
- Hint: Anweisungen werden zu einer Anweisungsgruppe zusammengefasst,welche durch geschweifte Klammern begrenzt sind. Es ist jedoch auch Möglich diese wegzulassenb wenn auf eine Kontrollstruktur nur eine Anweisung erfolgt [der Übersichtlichkeit halber bzw. der Einheitlichkeit & Erweiterbarkeit empfehle ich dies jedoch nicht in dieser Form zu verwenden !]
einfache Beispiele:
<? # if/elseif/else
if ( $zahl == 10 ) // einzelne if Bedienung
{
print "Zahl ist 10";
}
if ( $zahl <= 10 or $zahl == 12) // kombinierte if Bedienung mit else
{
print "Wunderbar";
}
else
{
print "Bin im ELSE";
}
if ( $zahl == 10 ) // einzelne if Bedienung mit elesif & else
{
print "Zahl ist 10";
}
elseif ( $zahl > 10 )
{
print "Zahl ist >10";
}
else
{
print "Zahl ist ungleich >=10";
}
?>
|
- Hint: Eine 'gedrehte' Schreibweise hilft Fehler zu vermeiden:
if ($variablenname=12) wäre immer wahr und der Variable würde der Wert 12 zugewiesen werden.
Vermieden werden kann dies mit : if (12==$variablenname) -> denn (12=$variablenname) würde einen Fehler geben da der Zahl 12 kein Variablenwert zugewiesen werden kann!
switch/case Kontrollstrukturen
Mit einem Switch kann eine Variable mehrfach auf bestimmte Bediengungen geprüft werden.Prinzipiel ist dies auch mit if/elseif/else möglich, ab einer größeren Anzahl von Prüfungen jedoch weit aus übersichtlicher.
- switch: Was soll geprüft werden
- case: Welche Bediengung muss erfüllt sein
- break: Unterbricht die weitere Ausführung
- default: Trift keine vorherige Case Bedingung zu wird dieser Block aisgeführt
<? # switch/case
switch( $zahl)
{
case 10:
print "Zahl ist 10";
break; // weitere Ausführung beenden
case 11:
print "Zahl ist 11";
break; // weitere Ausführung beenden
case 12:
print "Zahl ist 12";
break; // weitere Ausführung beenden
default:
print "Zahl ist irgendwas";
break; // weitere Ausführung beenden
}
?>
|
Dazu eine passende Übungsaufgabe & Beispiele Nr. 6
- Hint: Sobald in eimem Case-Teil eine Entsprechung zum switch-Ausdruck vorliegt, werden die darin enthaltenen Anweisungen von PHP ausgeführt.
Solange keine Break Anweisung kommt wird der restliche Code weiterhin ausgeführt ohne die entsprechenden Case Bedingungen zu beachten!
D.h. Ohne break am Ende eines case-Teils werden also noch die folgenden case-Blöcke ausgeführt unabhängig von deren Bedingungen!!!
<<-- zurück -- Startseite Seminar -- vor -->>
|