Get Smarty

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:

Check reviews of PHP Web Hosting, compatible with Smarty Templates

{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.
Post a Comment
All comments are moderated. Support questions are ignored, use the forums instead.
Author:
Email: (not shown)
What is 8 plus 17? (Are you human?)

Sponsors [info]

Cheap Website Hosting @hostdone.com
Cheap Hosting @HostsVault
email marketing @ActiveCampaign
broadband deals @BroadbandGenie
Best UK Web Hosting @webhost.uk.net
Reliable UK and US Web Hosting @rshosting.com
Cheap US and UK Web Hosting @infrenion.com
I.T Certification Exams @pass-guaranteed.com
Certification Practice Tests @firsttrycertify.com
Certification Practice Exam Questions @ace-it-certifications.com
Broadband Speed Test @broadbandspeed.co.uk
bulk email software @americaint.com