What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
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}