Просмотр файла manual-ru/language.function.if.html

Размер файла: 8.1Kb
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  4. <title>{if},{elseif},{else}</title>
  5. <meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
  6. <link rel="home" href="index.html" title="Руководство по Smarty">
  7. <link rel="up" href="language.builtin.functions.html" title="Chapter 7. Встроенные функции">
  8. <link rel="prev" href="language.function.foreach.html" title="{foreach},{foreachelse}">
  9. <link rel="next" href="language.function.include.html" title="{include}">
  10. </head>
  11. <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
  12. <div class="navheader">
  13. <table width="100%" summary="Navigation header">
  14. <tr><th colspan="3" align="center">{if},{elseif},{else}</th></tr>
  15. <tr>
  16. <td width="20%" align="left">
  17. <a accesskey="p" href="language.function.foreach.html">Prev</a> </td>
  18. <th width="60%" align="center">Chapter 7. Встроенные функции</th>
  19. <td width="20%" align="right"> <a accesskey="n" href="language.function.include.html">Next</a>
  20. </td>
  21. </tr>
  22. </table>
  23. <hr>
  24. </div>
  25. <div class="sect1" title="{if},{elseif},{else}">
  26. <div class="titlepage"><div><div><h2 class="title" style="clear: both">
  27. <a name="language.function.if"></a>{if},{elseif},{else}</h2></div></div></div>
  28. <p>
  29. Конструкция <span class="emphasis"><em>{if}</em></span> в Smarty такая же гибкая, как и
  30. конструкция
  31. <a class="ulink" href="http://php.net/if" target="_top"><span class="command"><strong>if</strong></span></a> в PHP,
  32. только с несколькими дополнительными возможностями для шаблонов.
  33. Каждый тэг <span class="emphasis"><em>{if}</em></span> должен иметь пару
  34. <span class="emphasis"><em>{/if}</em></span>. <span class="emphasis"><em>{else}</em></span> и
  35. <span class="emphasis"><em>{elseif}</em></span> так же допустимы. Досутпны все квалификаторы
  36. и функции
  37. из PHP, такие как <span class="emphasis"><em>||</em></span>, <span class="emphasis"><em>or</em></span>,
  38. <span class="emphasis"><em>&amp;&amp;</em></span>, <span class="emphasis"><em>and</em></span>,
  39. <span class="emphasis"><em>is_array()</em></span> и т.д.
  40. </p>
  41. <p>
  42. Если <a class="link" href="variable.security.html" title="$security">$security</a> включена,
  43. то массив <span class="emphasis"><em>IF_FUNCS</em></span> в массиве <a class="link" href="variable.security.settings.html" title="$security_settings">$security_settings</a>.
  44. </p>
  45. <p>
  46. Ниже следует список распознаваемых квалификаторов, которые должны быть
  47. отделены от окружающих элементов пробелами. Обратите внимания, что
  48. объекты в [квадратных скобках] являются необязательными. Иногда указаны
  49. эквиваленты в PHP.
  50. </p>
  51. <div class="informaltable"><table border="1">
  52. <colgroup>
  53. <col align="center">
  54. <col align="center">
  55. <col>
  56. <col>
  57. <col>
  58. </colgroup>
  59. <thead><tr>
  60. <th align="center">Квалификатор</th>
  61. <th align="center">Альтернативы</th>
  62. <th>Пример синтаксиса</th>
  63. <th>Описание</th>
  64. <th>Эквивалент PHP</th>
  65. </tr></thead>
  66. <tbody>
  67. <tr>
  68. <td align="center">==</td>
  69. <td align="center">eq</td>
  70. <td>$a eq $b</td>
  71. <td>равно</td>
  72. <td>==</td>
  73. </tr>
  74. <tr>
  75. <td align="center">!=</td>
  76. <td align="center">ne, neq</td>
  77. <td>$a neq $b</td>
  78. <td>не равно</td>
  79. <td>!=</td>
  80. </tr>
  81. <tr>
  82. <td align="center">&gt;</td>
  83. <td align="center">gt</td>
  84. <td>$a gt $b</td>
  85. <td>больше</td>
  86. <td>&gt;</td>
  87. </tr>
  88. <tr>
  89. <td align="center">&lt;</td>
  90. <td align="center">lt</td>
  91. <td>$a lt $b</td>
  92. <td>меньше</td>
  93. <td>&lt;</td>
  94. </tr>
  95. <tr>
  96. <td align="center">&gt;=</td>
  97. <td align="center">gte, ge</td>
  98. <td>$a ge $b</td>
  99. <td>больше или равно</td>
  100. <td>&gt;=</td>
  101. </tr>
  102. <tr>
  103. <td align="center">&lt;=</td>
  104. <td align="center">lte, le</td>
  105. <td>$a le $b</td>
  106. <td>меньше или равно</td>
  107. <td>&lt;=</td>
  108. </tr>
  109. <tr>
  110. <td align="center">===</td>
  111. <td align="center"> </td>
  112. <td>$a === 0</td>
  113. <td>проверка идентичности</td>
  114. <td>===</td>
  115. </tr>
  116. <tr>
  117. <td align="center">!</td>
  118. <td align="center">not</td>
  119. <td>not $a</td>
  120. <td>отрицание</td>
  121. <td>!</td>
  122. </tr>
  123. <tr>
  124. <td align="center">%</td>
  125. <td align="center">mod</td>
  126. <td>$a mod $b</td>
  127. <td>остаток от деления</td>
  128. <td>%</td>
  129. </tr>
  130. <tr>
  131. <td align="center">is [not] div by</td>
  132. <td align="center"> </td>
  133. <td>$a is not div by 4</td>
  134. <td>возможно деление без остатка</td>
  135. <td>$a % $b == 0</td>
  136. </tr>
  137. <tr>
  138. <td align="center">is [not] even</td>
  139. <td align="center"> </td>
  140. <td>$a is not even</td>
  141. <td>[не]чётно</td>
  142. <td>$a % 2 == 0</td>
  143. </tr>
  144. <tr>
  145. <td align="center">is [not] even by</td>
  146. <td align="center"> </td>
  147. <td>$a is not even by $b</td>
  148. <td>[не]чётно значению</td>
  149. <td>($a / $b) % 2 == 0</td>
  150. </tr>
  151. <tr>
  152. <td align="center">is [not] odd</td>
  153. <td align="center"> </td>
  154. <td>$a is not odd</td>
  155. <td>[не]нечётно</td>
  156. <td>$a % 2 != 0</td>
  157. </tr>
  158. <tr>
  159. <td align="center">is [not] odd by</td>
  160. <td align="center"> </td>
  161. <td>$a is not odd by $b</td>
  162. <td>[не]нечётно значению</td>
  163. <td>($a / $b) % 2 != 0</td>
  164. </tr>
  165. </tbody>
  166. </table></div>
  167. <div class="example">
  168. <a name="id2671252"></a><p class="title"><b>Example 7.15. примеры использования {if}</b></p>
  169. <div class="example-contents"><pre class="programlisting">
  170.  
  171. {if $name eq 'Fred'}
  172. Welcome Sir.
  173. {elseif $name eq 'Wilma'}
  174. Welcome Ma'am.
  175. {else}
  176. Welcome, whatever you are.
  177. {/if}
  178.  
  179. {* пример с логикой "или" *}
  180. {if $name eq 'Fred' or $name eq 'Wilma'}
  181. ...
  182. {/if}
  183.  
  184. {* то же самое, что и выше *}
  185. {if $name == 'Fred' || $name == 'Wilma'}
  186. ...
  187. {/if}
  188.  
  189. {* скобки разрешены *}
  190. {if ( $amount &lt; 0 or $amount &gt; 1000 ) and $volume &gt;= #minVolAmt#}
  191. ...
  192. {/if}
  193.  
  194. {* вы также можете использовать функции php *}
  195. {if count($var) gt 0}
  196. ...
  197. {/if}
  198.  
  199. {* проверка на массив *}
  200. {if is_array($foo) }
  201. ...
  202. {/if}
  203. {* проверка на существование *}
  204. {if isset($foo) }
  205. ...
  206. {/if}
  207.  
  208. {* проверяет чётность значений *}
  209. {if $var is even}
  210. ...
  211. {/if}
  212. {if $var is odd}
  213. ...
  214. {/if}
  215. {if $var is not odd}
  216. ...
  217. {/if}
  218.  
  219. {* проверяет, делится ли $var на 4 без остатка *}
  220. {if $var is div by 4}
  221. ...
  222. {/if}
  223.  
  224. {*
  225. проверяет, является ли $var чётным двум, например
  226. 0=чётно, 1=чётно, 2=нечётно, 3=нечётно, 4=чётно, 5=чётно и т.д.
  227. *}
  228. {if $var is even by 2}
  229. ...
  230. {/if}
  231.  
  232. {* 0=чётно, 1=чётно, 2=чётно, 3=нечётно, 4=нечётно, 5=нечётно и т.д. *}
  233. {if $var is even by 3}
  234. ...
  235. {/if}
  236.  
  237. </pre></div>
  238. </div>
  239. <br class="example-break"><div class="example">
  240. <a name="id2671265"></a><p class="title"><b>Example 7.16. ещё несколько примеров использования {if}</b></p>
  241. <div class="example-contents"><pre class="programlisting">
  242.  
  243. {if isset($name) &amp;&amp; $name = 'Blog'}
  244. {* сделать что-нибудь *}
  245. {elseif $name == $foo}
  246. {* сделать что-нибудь другое *}
  247. {/if}
  248.  
  249. {if is_array($foo) &amp;&amp; count($foo) &gt; 0)
  250. {* выполнить цикл foreach *}
  251. {/if}
  252.  
  253. </pre></div>
  254. </div>
  255. <br class="example-break">
  256. </div>
  257. <div class="navfooter">
  258. <hr>
  259. <table width="100%" summary="Navigation footer">
  260. <tr>
  261. <td width="40%" align="left">
  262. <a accesskey="p" href="language.function.foreach.html">Prev</a> </td>
  263. <td width="20%" align="center"><a accesskey="u" href="language.builtin.functions.html">Up</a></td>
  264. <td width="40%" align="right"> <a accesskey="n" href="language.function.include.html">Next</a>
  265. </td>
  266. </tr>
  267. <tr>
  268. <td width="40%" align="left" valign="top">{foreach},{foreachelse} </td>
  269. <td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td>
  270. <td width="40%" align="right" valign="top"> {include}</td>
  271. </tr>
  272. </table>
  273. </div>
  274. </body>
  275. </html>