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, wie ||, or, &&, and, etc. sind erlaubt. Hier eine Liste der erlaubten Operatoren. Bedingungsoperatoren müssen von umgebenden Elementen mit Leerzeichen abgetrennt werden. PHP-Äquivalente sind, sofern vorhanden, angeben. Operator Alternativen Syntax Beispiel Bedeutung PHP Äquivalent == eq $a eq $b ist gleich == != ne, neq $a neq $b ist ungleich != > gt $a gt $b größer als > < lt $a lt $b kleiner als < >= gte, ge $a ge $b größer oder gleich >= <= lte, le $a le $b kleiner oder gleich <= === $a === 0 identisch === ! not not $a Negation ! % mod $a mod $b Modulo % is [not] div by $a is not div by 4 Ist [nicht] teilbar durch $a % $b == 0 is [not] even $a is not even ist [k]eine gerade Zahl $a % 2 == 0 is [not] even by $a is [not] even by $b [k]eine gerade Gruppierung ($a / $b) % 2 == 0 is [not] odd $a is not odd ist [k]eine ungerade Zahl $a % 2 != 0 is [not] odd by $a is not odd by $b [k]eine ungerade Gruppierung ($a / $b) % 2 != 0 if Anweisung 1000 ) and $menge >= #minMengeAmt#} ... {/if} {* einbetten von php Funktionsaufrufen ('gt' steht für 'grösser als') *} {if count($var) gt 0} ... {/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} ]]>