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

Le istruzioni {if} in Smarty hanno praticamente la stessa flessibilità delle istruzioni if PHP, con qualche caratteristica aggiuntiva per il motore di template. Ogni {if} deve essere chiuso con un {/if}. Sono previsti anche {else} e {elseif}. Sono riconosciuti tutti gli operatori condizionali di PHP, come ||, or, &&, and, ecc.

Quella che segue è una lista degli operatori riconosciuti, che devono essere separati con degli spazi dagli elementi circostanti. Notate che gli elementi mostrati fra [parentesi quadre] sono opzionali. Quando esistono sono mostrati gli equivalenti in PHP.

Operatore Alternative Esempio di sintassi Significato Equivalente PHP
== eq $a eq $b uguale ==
!= ne, neq $a neq $b diverso !=
> gt $a gt $b maggiore di >
< lt $a lt $b minore di <
>= gte, ge $a ge $b maggiore o uguale >=
<= lte, le $a le $b minore o uguale <=
! not not $a negazione (unario) !
% mod $a mod $b modulo (resto della divisione) %
is [not] div by   $a is not div by 4 divisibile per $a % $b == 0
is [not] even   $a is not even [non] è un numero pari (unario) $a % 2 == 0
is [not] even by   $a is not even by $b livello di raggruppamento [non] pari ($a / $b) % 2 == 0
is [not] odd   $a is not odd [non] è un numero dispari (unario) $a % 2 != 0
is [not] odd by   $a is not odd by $b livello di raggruppamento [non] dispari ($a / $b) % 2 != 0

Example 7.11. Istruzioni if

{if $name eq "Fred"}
	Welcome Sir.
{elseif $name eq "Wilma"}
	Welcome Ma'am.
{else}
	Welcome, whatever you are.
{/if}

{* un esempio con "or" logico *}
{if $name eq "Fred" or $name eq "Wilma"}
	...
{/if}

{* come sopra *}
{if $name == "Fred" || $name == "Wilma"}
	...
{/if}

{* questa sintassi NON funziona, gli operatori condizionali
   devono essere separati con spazi dagli elementi circostanti *}
{if $name=="Fred" || $name=="Wilma"}
	...
{/if}


{* si possono usare le parentesi *}
{if ( $amount < 0 or $amount > 1000 ) and $volume >= #minVolAmt#}
	...
{/if}

{* potete anche incorporare chiamate a funzioni php *}
{if count($var) gt 0}
	...
{/if}

{* test su valori pari o dispari *}
{if $var is even}
	...
{/if}
{if $var is odd}
	...
{/if}
{if $var is not odd}
	...
{/if}

{* test se var è divisibile per 4 *}
{if $var is div by 4}
	...
{/if}

{* test se var è pari, raggruppato per due. Ad es.:
0=pari, 1=pari, 2=dispari, 3=dispari, 4=pari, 5=pari, etc. *}
{if $var is even by 2}
	...
{/if}

{* 0=pari, 1=pari, 2=pari, 3=dispari, 4=dispari, 5=dispari, etc. *}
{if $var is even by 3}
	...
{/if}