{if},{elseif},{else}{if}-Statements in Smarty erlauben die selbe
Flexibilität wie in PHP, bis auf ein paar Erweiterungen für die
Template-Engine. Jedes {if} muss mit einem
{/if} kombiniert
sein. {else} und {elseif}
sind ebenfalls erlaubt. Alle PHP Vergleichsoperatoren und Funktionen, wie
||, or,
&&, and,
is_array(), etc. sind erlaubt.
Wenn $security angeschaltet
wurde, dann müssen alle verwendeten PHP-Funktionen im
IF_FUNCS-Array in dem $security_settings-Array
deklariert werden.
Hier eine Liste der erlaubten Operatoren. Bedingungsoperatoren
müssen von umgebenden Elementen mit Leerzeichen abgetrennt werden.
PHP-Äquivalente sind, sofern vorhanden, angeben.
OperatorAlternativenSyntax BeispielBedeutungPHP Äquivalent==eq$a eq $bist gleich==!=ne, neq$a neq $bist ungleich!=>gt$a gt $bgrößer als><lt$a lt $bkleiner als<>=gte, ge$a ge $bgrößer oder gleich>=<=lte, le$a le $bkleiner oder gleich<====$a === 0identisch===!notnot $aNegation!%mod$a mod $bModulo%is [not] div by$a is not div by 4Ist [nicht] teilbar durch$a % $b == 0is [not] even$a is not evenist [k]eine gerade Zahl$a % 2 == 0is [not] even by$a is [not] even by $b[k]eine gerade Gruppierung($a / $b) % 2 == 0is [not] odd$a is not oddist [k]eine ungerade Zahl$a % 2 != 0is [not] odd by$a is not odd by $b[k]eine ungerade Gruppierung($a / $b) % 2 != 0if Anweisung
1000 ) and $menge >= #minMengeAmt#}
...
{/if}
{* einbetten von php Funktionsaufrufen ('gt' steht für 'grösser als') *}
{if count($var) gt 0}
...
{/if}
{* Auf "ist array" überprüfen. *}
{if is_array($foo) }
.....
{/if}
{* Auf "ist nicht null" überprüfen. *}
{if isset($foo) }
.....
{/if}
{* testen ob eine Zahl gerade (even) oder ungerade (odd) ist *}
{if $var is even}
...
{/if}
{if $var is odd}
...
{/if}
{if $var is not odd}
...
{/if}
{* testen ob eine Zahl durch 4 teilbar ist (div by) *}
{if $var is div by 4}
...
{/if}
{* testen ob eine Variable gerade ist, gruppiert nach 2
0=gerade, 1=gerade, 2=ungerade, 3=ungerade, 4=gerade, 5=gerade, etc *}
{if $var is even by 2}
...
{/if}
{* 0=gerade, 1=gerade, 2=gerade, 3=ungerade, 4=ungerade, 5=ungerade, etc *}
{if $var is even by 3}
...
{/if}
]]>