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 -->>
|