Smarty {if},{elseif},{else} --Built-in Functions

来源:互联网 发布:淘宝内部优惠券在哪领 编辑:程序博客网 时间:2024/06/06 13:55

{if},{elseif},{else}

{if} statements in Smarty have much the same flexibility as PHP if statements, with a few added features for the template engine. Every {if} must be paired with a matching {/if}{else} and {elseif} are also permitted. All PHP conditionals and functions are recognized, such as ||or&&andis_array(), etc.

If $security is enabled, only PHP functions from the IF_FUNCS array from$security_settings are allowed.

The following is a list of recognized qualifiers, which must be separated from surrounding elements by spaces. Note that items listed in [brackets] are optional. PHP equivalents are shown where applicable.

QualifierAlternatesSyntax ExampleMeaningPHP Equivalent==eq$a eq $bequals==!=ne, neq$a neq $bnot equals!=>gt$a gt $bgreater than><lt$a lt $bless than<>=gte, ge$a ge $bgreater than or equal>=<=lte, le$a le $bless than or equal<==== $a === 0check for identity===!notnot $anegation (unary)!%mod$a mod $bmodulous%is [not] div by $a is not div by 4divisible by$a % $b == 0is [not] even $a is not even[not] an even number (unary)$a % 2 == 0is [not] even by $a is not even by $bgrouping level [not] even($a / $b) % 2 == 0is [not] odd $a is not odd[not] an odd number (unary)$a % 2 != 0is [not] odd by $a is not odd by $b[not] an odd grouping($a / $b) % 2 != 0

Example 7.15. {if} statements

{if $name eq 'Fred'}    Welcome Sir.{elseif $name eq 'Wilma'}    Welcome Ma'am.{else}    Welcome, whatever you are.{/if}{* an example with "or" logic *}{if $name eq 'Fred' or $name eq 'Wilma'}   ...{/if}{* same as above *}{if $name == 'Fred' || $name == 'Wilma'}   ...{/if}{* parenthesis are allowed *}{if ( $amount < 0 or $amount > 1000 ) and $volume >= #minVolAmt#}   ...{/if}{* you can also embed php function calls *}{if count($var) gt 0}   ...{/if}{* check for array. *}{if is_array($foo) }   .....{/if}{* check for not null. *}{if isset($foo) }   .....{/if}{* test if values are even or odd *}{if $var is even}   ...{/if}{if $var is odd}   ...{/if}{if $var is not odd}   ...{/if}{* test if var is divisible by 4 *}{if $var is div by 4}   ...{/if}{*  test if var is even, grouped by two. i.e.,  0=even, 1=even, 2=odd, 3=odd, 4=even, 5=even, etc.*}{if $var is even by 2}   ...{/if}{* 0=even, 1=even, 2=even, 3=odd, 4=odd, 5=odd, etc. *}{if $var is even by 3}   ...{/if}  

Example 7.16. {if} with more examples

 {if isset($name) && $name == 'Blog'}     {* do something *}{elseif $name == $foo}    {* do something *}{/if}{if is_array($foo) && count($foo) > 0}    {* do a foreach loop *}{/if}  
来源:http://www.smarty.net/docsv2/en/language.function.if.tpl

原创粉丝点击