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:
L'instruction {if}
dans Smarty dispose de la même flexibilité que l'instruction
PHP if,
avec quelques fonctionnalités supplémentaires pour le
moteur de template. Tous les {if}
doivent être
utilisés de pair avec un {/if}
.
{else}
et {elseif}
sont également
des balises autorisées. Toutes les conditions et fonctions PHP sont reconnues,
comme ||, or,
&&, and,
is_array(), etc.
Si $security
est actif,
alors le tableau IF_FUNCS dans le tableau
$security_settings
(?!).
La liste suivante présente les opérateurs reconnus, qui doivent être entourés d'espaces. Remarquez que les éléments listés entre [crochets] sont optionnels. Les équivalents PHP sont indiqués lorsque applicables.
Opérateur | Syntaxe alternative | Exemple de syntaxe | Signification | Equivalent PHP |
---|---|---|---|---|
== | eq | $a eq $b | égalité | == |
!= | ne, neq | $a neq $b | différence | != |
> | gt | $a gt $b | supérieur à | > |
< | lt | $a lt $b | inférieur à | < |
>= | gte, ge | $a ge $b | supérieur ou égal à | >= |
<= | lte, le | $a le $b | inférieur ou égal à | <= |
=== | $a === 0 | égalité (type et valeur) | === | |
! | not | not $a | négation | ! |
% | mod | $a mod $b | modulo | % |
is [not] div by | $a is not div by 4 | divisible par | $a % $b == 0 | |
is [not] even | $a is not even | est [ou non] un nombre pair | $a % 2 == 0 | |
is [not] even by | $a is not even by $b | paritée de groupe | ($a / $b) % 2 == 0 | |
is [not] odd | $a is not odd | est [ou non] un nombre impair | $a % 2 != 0 | |
is [not] odd by | $a is not odd by $b | est [ou non] un groupe impair | ($a / $b) % 2 != 0 |
Example 7.15. Instruction {if}
{if $name eq 'Fred'} Bienvenue, Monsieur. {elseif $name eq 'Wilma'} Bienvenue m'dame. {else} Bienvenue, qui que vous soyez. {/if} {* Un exemple avec l'opérateur or *} {if $name eq 'Fred' or $name eq 'Wilma'} ... {/if} {* même chose que ci-dessus *} {if $name == 'Fred' || $name == 'Wilma'} ... {/if} {* les parenthèses sont autorisées *} {if ( $amount < 0 or $amount > 1000 ) and $volume >= #minVolAmt#} ... {/if} {* vous pouvez également faire appel aux fonctions PHP *} {if count($var) gt 0} ... {/if} {* Vérifie si c'est un tableau. *} {if is_array($foo) } ..... {/if} {* Vérifie si la variable est nulle. *} {if isset($foo) } ..... {/if} {* teste si les valeurs sont paires(even) ou impaires(odd) *} {if $var is even} ... {/if} {if $var is odd} ... {/if} {if $var is not odd} ... {/if} {* teste si la variable est divisible par 4 *} {if $var is div by 4} ... {/if} {* teste si la variable est paire, par groupe de deux i.e., 0=paire, 1=paire, 2=impaire, 3=impaire, 4=paire, 5=paire, etc. *} {if $var is even by 2} ... {/if} {* 0=paire, 1=paire, 2=paire, 3=impaire, 4=impaire, 5=impaire, etc. *} {if $var is even by 3} ... {/if}
Example 7.16. Plus d'exemples avec {if}
{if isset($name) && $name = 'Blog'} {* faire quelque chose *} {elseif $name == $foo} {* faire quelque chose *} {/if} {if is_array($foo) && count($foo) > 0) {* faire une boucle foreach *} {/if}