diff options
| author | Simon Wisselink <s.wisselink@iwink.nl> | 2023-02-06 10:40:00 +0100 |
|---|---|---|
| committer | Simon Wisselink <s.wisselink@iwink.nl> | 2023-02-06 10:40:00 +0100 |
| commit | 694ff1b73361e276eeec3a364c3b11b1a48437af (patch) | |
| tree | d50e8d535ebec9b4325c01c5b312bcf13a284627 /docs/designers/language-builtin-functions/language-function-if.md | |
| parent | 1e0d25638ef3e854e914c9c366393bd5598a440b (diff) | |
| download | smarty-694ff1b73361e276eeec3a364c3b11b1a48437af.tar.gz smarty-694ff1b73361e276eeec3a364c3b11b1a48437af.tar.bz2 smarty-694ff1b73361e276eeec3a364c3b11b1a48437af.zip | |
Improved another chunk of the designers docs
Diffstat (limited to 'docs/designers/language-builtin-functions/language-function-if.md')
| -rw-r--r-- | docs/designers/language-builtin-functions/language-function-if.md | 181 |
1 files changed, 90 insertions, 91 deletions
diff --git a/docs/designers/language-builtin-functions/language-function-if.md b/docs/designers/language-builtin-functions/language-function-if.md index b1ed2ae0..c7be37a2 100644 --- a/docs/designers/language-builtin-functions/language-function-if.md +++ b/docs/designers/language-builtin-functions/language-function-if.md @@ -1,121 +1,120 @@ -{if},{elseif},{else} {#language.function.if} -==================== +# {if},{elseif},{else} `{if}` statements in Smarty have much the same flexibility as PHP [if](https://www.php.net/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*, *&&*, *and*, -*is\_array()*, etc. +*is_array()*, etc. -If securty is enabled, only PHP functions from `$php_functions` property -of the securty policy are allowed. See the -[Security](#advanced.features.security) section for details. +If security is enabled, only PHP functions from `$php_functions` property +of the security policy are allowed. See the +[Security](../../programmers/advanced-features/advanced-features-security.md) section for details. 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. - Qualifier Alternates Syntax Example Meaning PHP Equivalent - -------------------- ------------ ------------------------ -------------------------------- ---------------------- - == eq \$a eq \$b equals == - != ne, neq \$a neq \$b not equals != - \> gt \$a gt \$b greater than \> - \< lt \$a lt \$b less than \< - \>= gte, ge \$a ge \$b greater than or equal \>= - \<= lte, le \$a le \$b less than or equal \<= - === \$a === 0 check for identity === - ! not not \$a negation (unary) ! - \% mod \$a mod \$b modulous \% - is \[not\] div by \$a is not div by 4 divisible by \$a % \$b == 0 - is \[not\] even \$a is not even \[not\] an even number (unary) \$a % 2 == 0 - is \[not\] even by \$a is not even by \$b grouping level \[not\] even (\$a / \$b) % 2 == 0 - is \[not\] odd \$a is not odd \[not\] an odd number (unary) \$a % 2 != 0 - is \[not\] odd by \$a is not odd by \$b \[not\] an odd grouping (\$a / \$b) % 2 != 0 +## Qualifiers +| Qualifier | Alternates | Syntax Example | Meaning | PHP Equivalent | +|--------------------|------------|----------------------|--------------------------------|--------------------| +| == | eq | $a eq $b | equals | == | +| != | ne, neq | $a neq $b | not equals | != | +| > | gt | $a gt $b | greater than | > | +| < | lt | $a lt $b | less than | < | +| >= | gte, ge | $a ge $b | greater than or equal | >= | +| <= | lte, le | $a le $b | less than or equal | <= | +| === | | $a === 0 | check for identity | === | +| ! | not | not $a | negation (unary) | ! | +| % | mod | $a mod $b | modulo | % | +| is \[not\] div by | | $a is not div by 4 | divisible by | $a % $b == 0 | +| is \[not\] even | | $a is not even | \[not\] an even number (unary) | $a % 2 == 0 | +| is \[not\] even by | | $a is not even by $b | grouping level \[not\] even | ($a / $b) % 2 == 0 | +| is \[not\] odd | | $a is not odd | \[not\] an odd number (unary) | $a % 2 != 0 | +| is \[not\] odd by | | $a is not odd by $b | \[not\] an odd grouping | ($a / $b) % 2 != 0 | - {if $name eq 'Fred'} - Welcome Sir. - {elseif $name eq 'Wilma'} - Welcome Ma'am. - {else} - Welcome, whatever you are. - {/if} +## Examples +```smarty +{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} +{* an example with "or" logic *} +{if $name eq 'Fred' or $name eq 'Wilma'} + ... +{/if} - {* same as above *} - {if $name == 'Fred' || $name == 'Wilma'} - ... - {/if} +{* same as above *} +{if $name == 'Fred' || $name == 'Wilma'} + ... +{/if} - {* parenthesis are allowed *} - {if ( $amount < 0 or $amount > 1000 ) and $volume >= #minVolAmt#} - ... - {/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} +{* you can also embed php function calls *} +{if count($var) gt 0} + ... +{/if} - {* check for array. *} - {if is_array($foo) } - ..... - {/if} +{* check for array. *} +{if is_array($foo) } + ..... +{/if} - {* check for not null. *} - {if isset($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 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 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} +{* + 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} +{* 0=even, 1=even, 2=even, 3=odd, 4=odd, 5=odd, etc. *} +{if $var is even by 3} + ... +{/if} + +{if isset($name) && $name == 'Blog'} + {* do something *} +{elseif $name == $foo} + {* do something *} +{/if} - - - - {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} - +{if is_array($foo) && count($foo) > 0} + {* do a foreach loop *} +{/if} +``` |
