Get Smarty

Donate

Paypal

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

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

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

Example 7.8. if Anweisung


{* ein Beispiel mit 'eq' (gleich) *}
{if $name eq "Fred"}
	Willkommen der Herr.
{elseif $name eq "Wilma"}
	Willkommen die Dame.
{else}
	Willkommen, was auch immer Du sein magst.
{/if}

{* ein Beispiel mit 'or'-Logik *}
{if $name eq "Fred" or $name eq "Wilma"}
	...
{/if}

{* das selbe *}
{if $name == "Fred" || $name == "Wilma"}
	...
{/if}

{*
  die foldende Syntax ist nicht korrekt, da die Elemente welche die
  Bedingung umfassen nicht mit Leerzeichen abgetrennt sind
*}
{if $name=="Fred" || $name=="Wilma"}
	...
{/if}


{* Klammern sind erlaubt *}
{if ( $anzahl < 0 or $anzahl > 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}


Comments
No comments for this page.

Advertisement

Sponsors [info]

Sponsors