- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>{if},{elseif},{else}</title>
- <meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
- <link rel="home" href="index.html" title="Руководство по Smarty">
- <link rel="up" href="language.builtin.functions.html" title="Chapter 7. Встроенные функции">
- <link rel="prev" href="language.function.foreach.html" title="{foreach},{foreachelse}">
- <link rel="next" href="language.function.include.html" title="{include}">
- </head>
- <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
- <div class="navheader">
- <table width="100%" summary="Navigation header">
- <tr><th colspan="3" align="center">{if},{elseif},{else}</th></tr>
- <tr>
- <td width="20%" align="left">
- <a accesskey="p" href="language.function.foreach.html">Prev</a> </td>
- <th width="60%" align="center">Chapter 7. Встроенные функции</th>
- <td width="20%" align="right"> <a accesskey="n" href="language.function.include.html">Next</a>
- </td>
- </tr>
- </table>
- <hr>
- </div>
- <div class="sect1" title="{if},{elseif},{else}">
- <div class="titlepage"><div><div><h2 class="title" style="clear: both">
- <a name="language.function.if"></a>{if},{elseif},{else}</h2></div></div></div>
- <p>
- Конструкция <span class="emphasis"><em>{if}</em></span> в Smarty такая же гибкая, как и
- конструкция
- <a class="ulink" href="http://php.net/if" target="_top"><span class="command"><strong>if</strong></span></a> в PHP,
- только с несколькими дополнительными возможностями для шаблонов.
- Каждый тэг <span class="emphasis"><em>{if}</em></span> должен иметь пару
- <span class="emphasis"><em>{/if}</em></span>. <span class="emphasis"><em>{else}</em></span> и
- <span class="emphasis"><em>{elseif}</em></span> так же допустимы. Досутпны все квалификаторы
- и функции
- из PHP, такие как <span class="emphasis"><em>||</em></span>, <span class="emphasis"><em>or</em></span>,
- <span class="emphasis"><em>&&</em></span>, <span class="emphasis"><em>and</em></span>,
- <span class="emphasis"><em>is_array()</em></span> и т.д.
- </p>
- <p>
- Если <a class="link" href="variable.security.html" title="$security">$security</a> включена,
- то массив <span class="emphasis"><em>IF_FUNCS</em></span> в массиве <a class="link" href="variable.security.settings.html" title="$security_settings">$security_settings</a>.
- </p>
- <p>
- Ниже следует список распознаваемых квалификаторов, которые должны быть
- отделены от окружающих элементов пробелами. Обратите внимания, что
- объекты в [квадратных скобках] являются необязательными. Иногда указаны
- эквиваленты в PHP.
- </p>
- <div class="informaltable"><table border="1">
- <colgroup>
- <col align="center">
- <col align="center">
- <col>
- <col>
- <col>
- </colgroup>
- <thead><tr>
- <th align="center">Квалификатор</th>
- <th align="center">Альтернативы</th>
- <th>Пример синтаксиса</th>
- <th>Описание</th>
- <th>Эквивалент PHP</th>
- </tr></thead>
- <tbody>
- <tr>
- <td align="center">==</td>
- <td align="center">eq</td>
- <td>$a eq $b</td>
- <td>равно</td>
- <td>==</td>
- </tr>
- <tr>
- <td align="center">!=</td>
- <td align="center">ne, neq</td>
- <td>$a neq $b</td>
- <td>не равно</td>
- <td>!=</td>
- </tr>
- <tr>
- <td align="center">></td>
- <td align="center">gt</td>
- <td>$a gt $b</td>
- <td>больше</td>
- <td>></td>
- </tr>
- <tr>
- <td align="center"><</td>
- <td align="center">lt</td>
- <td>$a lt $b</td>
- <td>меньше</td>
- <td><</td>
- </tr>
- <tr>
- <td align="center">>=</td>
- <td align="center">gte, ge</td>
- <td>$a ge $b</td>
- <td>больше или равно</td>
- <td>>=</td>
- </tr>
- <tr>
- <td align="center"><=</td>
- <td align="center">lte, le</td>
- <td>$a le $b</td>
- <td>меньше или равно</td>
- <td><=</td>
- </tr>
- <tr>
- <td align="center">===</td>
- <td align="center"> </td>
- <td>$a === 0</td>
- <td>проверка идентичности</td>
- <td>===</td>
- </tr>
- <tr>
- <td align="center">!</td>
- <td align="center">not</td>
- <td>not $a</td>
- <td>отрицание</td>
- <td>!</td>
- </tr>
- <tr>
- <td align="center">%</td>
- <td align="center">mod</td>
- <td>$a mod $b</td>
- <td>остаток от деления</td>
- <td>%</td>
- </tr>
- <tr>
- <td align="center">is [not] div by</td>
- <td align="center"> </td>
- <td>$a is not div by 4</td>
- <td>возможно деление без остатка</td>
- <td>$a % $b == 0</td>
- </tr>
- <tr>
- <td align="center">is [not] even</td>
- <td align="center"> </td>
- <td>$a is not even</td>
- <td>[не]чётно</td>
- <td>$a % 2 == 0</td>
- </tr>
- <tr>
- <td align="center">is [not] even by</td>
- <td align="center"> </td>
- <td>$a is not even by $b</td>
- <td>[не]чётно значению</td>
- <td>($a / $b) % 2 == 0</td>
- </tr>
- <tr>
- <td align="center">is [not] odd</td>
- <td align="center"> </td>
- <td>$a is not odd</td>
- <td>[не]нечётно</td>
- <td>$a % 2 != 0</td>
- </tr>
- <tr>
- <td align="center">is [not] odd by</td>
- <td align="center"> </td>
- <td>$a is not odd by $b</td>
- <td>[не]нечётно значению</td>
- <td>($a / $b) % 2 != 0</td>
- </tr>
- </tbody>
- </table></div>
- <div class="example">
- <a name="id2671252"></a><p class="title"><b>Example 7.15. примеры использования {if}</b></p>
- <div class="example-contents"><pre class="programlisting">
-
- {if $name eq 'Fred'}
- Welcome Sir.
- {elseif $name eq 'Wilma'}
- Welcome Ma'am.
- {else}
- Welcome, whatever you are.
- {/if}
-
- {* пример с логикой "или" *}
- {if $name eq 'Fred' or $name eq 'Wilma'}
- ...
- {/if}
-
- {* то же самое, что и выше *}
- {if $name == 'Fred' || $name == 'Wilma'}
- ...
- {/if}
-
- {* скобки разрешены *}
- {if ( $amount < 0 or $amount > 1000 ) and $volume >= #minVolAmt#}
- ...
- {/if}
-
- {* вы также можете использовать функции php *}
- {if count($var) gt 0}
- ...
- {/if}
-
- {* проверка на массив *}
- {if is_array($foo) }
- ...
- {/if}
-
- {* проверка на существование *}
- {if isset($foo) }
- ...
- {/if}
-
- {* проверяет чётность значений *}
- {if $var is even}
- ...
- {/if}
- {if $var is odd}
- ...
- {/if}
- {if $var is not odd}
- ...
- {/if}
-
- {* проверяет, делится ли $var на 4 без остатка *}
- {if $var is div by 4}
- ...
- {/if}
-
- {*
- проверяет, является ли $var чётным двум, например
- 0=чётно, 1=чётно, 2=нечётно, 3=нечётно, 4=чётно, 5=чётно и т.д.
- *}
- {if $var is even by 2}
- ...
- {/if}
-
- {* 0=чётно, 1=чётно, 2=чётно, 3=нечётно, 4=нечётно, 5=нечётно и т.д. *}
- {if $var is even by 3}
- ...
- {/if}
-
- </pre></div>
- </div>
- <br class="example-break"><div class="example">
- <a name="id2671265"></a><p class="title"><b>Example 7.16. ещё несколько примеров использования {if}</b></p>
- <div class="example-contents"><pre class="programlisting">
-
- {if isset($name) && $name = 'Blog'}
- {* сделать что-нибудь *}
- {elseif $name == $foo}
- {* сделать что-нибудь другое *}
- {/if}
-
- {if is_array($foo) && count($foo) > 0)
- {* выполнить цикл foreach *}
- {/if}
-
- </pre></div>
- </div>
- <br class="example-break">
- </div>
- <div class="navfooter">
- <hr>
- <table width="100%" summary="Navigation footer">
- <tr>
- <td width="40%" align="left">
- <a accesskey="p" href="language.function.foreach.html">Prev</a> </td>
- <td width="20%" align="center"><a accesskey="u" href="language.builtin.functions.html">Up</a></td>
- <td width="40%" align="right"> <a accesskey="n" href="language.function.include.html">Next</a>
- </td>
- </tr>
- <tr>
- <td width="40%" align="left" valign="top">{foreach},{foreachelse} </td>
- <td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td>
- <td width="40%" align="right" valign="top"> {include}</td>
- </tr>
- </table>
- </div>
- </body>
- </html>