if-Konstrukt

 

Video-Tutorial

if

Ein if-Konstrukt ermöglicht die Darstellung von Inhalten, wenn bestimmte Bedingungen erfüllt sind.

if Ausdruck
	Inhalt

Die Darstellung von Inhalt erfolgt erst, wenn Ausdruck wahr ist. Ausdruck wird zu einem boolschen Wahrheitswert (TRUE oder FALSE) ausgewertet. Evaluiert Ausdruck zu TRUE, wird Inhalt ausgegeben, andernfalls wird Inhalt ignoriert.

In der einfachsten Form besteht ein if-Konstrukt aus nur einer Bedingung, die durch den Ausdruck if eingeleitet wird. Der darauf folgende Inhalt wird dargestellt oder ein Funktionsaufruf ausgeführt.

In einzeiligen Code-Blöcken muss ein if-Konstrukt mit dem Ausdruck endif abgeschlossen werden.

{% if $_a > $_b %} a ist größer als b {% endif %}

Alternative

{% if($_a > $_b) { print("a ist größer als b"); } %}

else

Oft ist der Wunsch eine Anweisung auszuführen, wenn eine bestimmte Bedingung erfüllt ist, und eine andere Anweisung, wenn die Bedienung nicht erfüllt ist. Dies ist der Einsatzzweck von else. else erweitert eine if-Anweisung um eine weitere Anweisung, die ausgeführt werden soll, wenn der Ausdruck in der if-Anweisung zu FALSE ausgewertet wird. Der unten beschriebene Programmcode würde a ist größer als b ausgeben, wenn der Wert in $_a größer als der Wert in $_b ist, ansonsten wäre die Ausgabe: a ist NICHT größer als b.

{% if $_a > $_b %} a ist größer als b {% else %} a ist NICHT größer als b {% endif %}

Alternative

{% if($_a > $_b) { print("a ist größer als b"); } else { print("a ist NICHT größer als b"); } %}

Die else-Anweisung wird nur ausgeführt, wenn der if-Ausdruck als FALSE ausgewertet wurde.

elseif

elseif ist eine Kombination aus if und else. Wie else erweitert elseif ein if-Konstrukt, um alternative Inhalte darzustellen, wenn die ursprüngliche if-Bedingung nicht zutrifft. Im Gegensatz zu else werden die Alternativinhalte aber nur dargestellt, wenn die elseif-Bedingung zutrifft. Der folgende Beispielcode gibt a ist größer als b, a ist genauso groß wie b oder a ist kleiner als b aus:

{% if $_a > $_b %} a ist größer als b {% elseif $_a == $_b %} a ist genauso groß wie b {% else %} a ist kleiner als b {% endif %}

Alternative

{% if($_a > $_b) { print("a ist größer als b"); } elseif($_a == $_b) { print("a ist gleich groß wie b"); } else { print("a ist kleiner als b"); } %}

Innerhalb einer if-Kontrollstruktur können mehrere elseif-Strukturen benutzt werden. Die erste, deren Bedingung zutrifft, wird ausgeführt.

Der elseif-Teil wird nur ausgeführt, wenn die vorhergehende if-Bedingung und alle vorhergehenden elseif-Bedingungen nicht zutreffen (FALSE) und die aktuelle elseif-Bedingung zutrifft (TRUE).

contains

Die contains-Bedingung ist ein Sonderfall, der für besondere Anwendungsfälle implementiert wurde. Mit der Bedingung werden Inhalte dargestellt, die in einer Zeichenkette enthalten sind. Natürlich ist dies auch durch mehrere Einzelbedingungen möglich. Somit stellt die contains-Bedingung für solche Fälle eine vereinfachte Schreibweise dar.

Im folgenden Beispiel erfolgt die Darstellung von Zahlungsinformationen nur, wenn $MethodOfPaymentID in der Zeichenkette "1|2|3" enthalten ist, also entweder dem Wert 1, 2 oder 3 entspricht. Die Template-Variable $MethodOfPaymentID gibt nur Zahlenwerte aus. Dieses Beispiel kann in E-Mail-Vorlagen verwendet werden.

{% if "1|2|3" contains $MethodOfPaymentID %} Zahlungsinformationen für Nachnahme (ID 1), Rechnung (ID 2) und Lastschrift (ID 3) {% endif %}

Komplexe Ausdrücke

Ausdrücke können auch aus mehreren Bedingungen bestehen, die mit einem logischen Operator (&&, ||) verknüpft werden.

Die Verwendung von runden Klammern ist nötig, wenn unterschiedliche Bedingungen gruppiert werden sollen. Bedingungen in einer runden Klammer werden auch als Gruppe ausgewertet und das Ergebnis (TRUE oder FALSE) mit den weiteren Bedingungen ausgewertet.

Im folgenden Beispiel muss somit eine Bedingung innerhalb der runden Klammer zutreffen und gleichzeitig $_d den boolschen Wert TRUE beinhalten. Es würde in dem Beispiel auch ausreichen, wenn $_b den Wert 1 und $_d den Wert TRUE hat.

{% if ( $_a > 0 || $_b > 0 || $_c > 0) && $_d == TRUE %} Inhalt {% endif %}

Alternative

{% if(( $_a > 0 || $_b > 0 || $_c > 0) && $_d == TRUE) { print("Inhalt"); } %}

Im nächsten Beispiel wird Inhalt sowohl dargestellt, wenn nur der Wert von $_a, $_b oder $_c größer 0 ist, als auch, wenn der Wert von zweien oder allen dreien größer 0 ist.

{% if $_a > 0 || $_b > 0 || $_c > 0 && $_d == TRUE %} Inhalt {% endif %}

Alternative

{% if($_a > 0 || $_b > 0 || $_c > 0 && $_d == TRUE) { print("Inhalt"); } %}

Sie müssen bei der Definition von komplexen Ausrücken also genau wissen, welche Abhängigkeiten zwischen den einzelnen Bedingungen bestehen sollen, um das gewünschte Ergebnis zu erzielen.

Nach oben