Operatoren

 

Arithmetische Operatoren

Erinnern Sie sich noch an die Grundrechenarten aus der Schule? Mit arithmetischen Operatoren lassen sich diese Grundrechenarten und weitere Rechenarten ausführen.

Beispiel Name Ergebnis
$_a + $_b Addition Summe von $_a und $_b
$_a - $_b Subtraktion Differenz von $_a und $_b
$_a * $_b Multiplikation Produkt von $_a und $_b
$_a / $_b Division Quotient von $_a und $_b
$_a % $_b Modulus Rest von $_a geteilt durch $_b
$_a ** $_b Potenz $_a ist die Basis und $_b der Exponent.
Das Ergebnis ist somit die Potenz von $_a.

Zuweisungsoperatoren

Der einfachste Zuweisungsoperator ist "=". Wahrscheinlich kommt man als Erstes auf die Idee, ihn mit "ist gleich" zu bezeichnen. Das ist falsch. In Wirklichkeit bedeutet er, dass dem linken Operanden der Wert des Ausdrucks auf der rechten Seite zugewiesen wird. Korrekt gesprochen lautet der Ausdruck "wird gesetzt auf den Wert von".

Einzeiliger Code-Block

{% $_a = 3 %} {% $_a += 5 %} {# setzt $_a auf den Wert 8, als ob wir geschrieben hätten: $_a = $_a + 5 #} {% $_b = "Hallo " %} {% $_b .= "Du!" %} {# setzt $_b auf den Wert "Hallo Du!" #}

Mehrzeiliger Code-Block

{% $_a = 3; $_a += 5; # setzt $_a auf den Wert 8, als ob wir geschrieben hätten: $_a = $_a + 5 $_b = "Hallo "; $_b .= "Du!"; # setzt $b auf den Wert "Hallo Du!" %}
Beispiel Name Ergebnis
$_a = $_b Zuweisung $_a enthält Wert von $_b
$_a .= $_b Vereinigung Eine Zeichenkette (String) wird um die Zeichenkette in $_b erweitert.
$_a += $_b Addition Entspricht $_a = $_a + $_b
$_a -= $_b Subtraktion Entspricht $_a = $_a - $_b
$_a *= $_b Multiplikation Entspricht $_a = $_a * $_b
$_a /= $_b Division Entspricht $_a = $_a / $_b
$_a %= $_b Modulus Entspricht $_a = $_a % $_b

Vergleichs-Operatoren

Beispiel Name Ergebnis
$_a == $_b gleich Gibt TRUE zurück, wenn $_a gleich $_b ist.
$_a === $_b identisch Gibt TRUE zurück, wenn $_a gleich $_b ist und beide vom gleichen Typ sind.
$_a != $_b ungleich Gibt TRUE zurück, wenn $_a nicht gleich $_b ist.
$_a !== $_b nicht identisch Gibt TRUE zurück, wenn $_a nicht gleich $_b ist, oder wenn beide nicht vom gleichen Typ sind.
$_a < $_b kleiner als Gibt TRUE zurück, wenn $_a kleiner als $_b ist.
$_a > $_b größer als Gibt TRUE zurück, wenn $_a größer als $_b ist.
$_a <= $_b kleiner gleich Gibt TRUE zurück, wenn $_a kleiner oder gleich $_b ist.
$_a >= $_b größer gleich Gibt TRUE zurück, wenn $_a größer oder gleich $_b ist.

Logische Operatoren

Beispiel Name Ergebnis
$_a && $_b und TRUE wenn sowohl $_a als auch $_b TRUE ist.
$_a || $_b oder TRUE wenn mindestens einer der Werte von $_a und $_b TRUE ist.
!$_a nicht TRUE wenn $_a nicht TRUE ist.

Sofern in einer Bedingung mehrere Logische Operatoren verwendet wurden, werden zuerst die &&-Operatoren und daraufhin die ||-Operatoren berücksichtigt. Sie können die Rangfolge durch Klammern verändern:

{% if( ($_a==$_b || $_a==$_c) && $_c != $_d ) { } %}

Vereinigungsoperatoren

Mit dem Vereinigungsoperator "." werden beliebig viele Strings, Zahlenwerte, Variablen und Rückgabewerte von Funktionen zu einem einzigen String verkettet.

Beispiel Name Ergebnis
$_a . $_b . $_c Vereinigung Die Zeichenketten (String) $_a, $_b und $_c werden miteinander verkettet.
{% $_text1 = ["Hallo ", "Du", "!"]; print ( $_text1[0] . $_text1[1] . $_text1[2] ); # Ausgabe: Hallo Du! %} {% $_name = "Du"; $_text2 = "Hallo " . $_name . "."; print ( $_text2 ); # Ausgabe: Hallo Du. %} {% $_text4 = "Hallo, " . $CustomerName; print ( $_text4 ); # Ausgabe: Hallo, Markus Müller # $CustomerName enthält den Kundennamen, sobald dieser eingeloggt ist. %}

Operator-Rangfolge

Die Operator-Rangfolge legt fest, wie "eng" ein Operator zwei Ausdrücke miteinander verbindet. Zum Beispiel ist das Ergebnis des Ausdruckes 1 + 5 * 3 gleich 16 und nicht 18, da der Multiplikations-Operator (*) in der Rangfolge höher steht als der Additions-Operator (+). Wenn nötig, können Sie Klammern setzen, um die Rangfolge der Operatoren zu beeinflussen. Zum Beispiel ergibt (1 + 5) * 3 gleich 18. Ist die Rangfolge der Operatoren gleich, so wird links nach rechts Assoziativität benutzt.

Die folgende Tabelle zeigt die Rangfolge der Operatoren. Oben steht der Operator mit dem höchsten Rang.

Assoziativität Operator
rechts !
links * / %
links + - .
keine Richtung < <= > >=
keine Richtung == != === !==
links &&
links ||
rechts = += -= *= /= .= %=
Nach oben