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

Размер файла: 11.83Kb
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  4. <title>Chapter 4. Переменные</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="smarty.for.designers.html" title="Part II. Smarty для дизайнеров шаблонов">
  8. <link rel="prev" href="language.escaping.html" title="Предотвращение обработки Smarty">
  9. <link rel="next" href="language.config.variables.html" title="Переменные файлов конфигурации">
  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">Chapter 4. Переменные</th></tr>
  15. <tr>
  16. <td width="20%" align="left">
  17. <a accesskey="p" href="language.escaping.html">Prev</a> </td>
  18. <th width="60%" align="center">Part II. Smarty для дизайнеров шаблонов</th>
  19. <td width="20%" align="right"> <a accesskey="n" href="language.config.variables.html">Next</a>
  20. </td>
  21. </tr>
  22. </table>
  23. <hr>
  24. </div>
  25. <div class="chapter" title="Chapter 4. Переменные">
  26. <div class="titlepage"><div><div><h2 class="title">
  27. <a name="language.variables"></a>Chapter 4. Переменные</h2></div></div></div>
  28. <div class="toc">
  29. <p><b>Table of Contents</b></p>
  30. <dl>
  31. <dt><span class="sect1"><a href="language.variables.html#language.assigned.variables">Переменные, назначенные из PHP</a></span></dt>
  32. <dd><dl>
  33. <dt><span class="sect2"><a href="language.variables.html#language.variables.assoc.arrays">Ассоциативные массивы</a></span></dt>
  34. <dt><span class="sect2"><a href="language.variables.html#language.variables.array.indexes">Индексы массивов</a></span></dt>
  35. <dt><span class="sect2"><a href="language.variables.html#language.variables.objects">Объекты</a></span></dt>
  36. </dl></dd>
  37. <dt><span class="sect1"><a href="language.config.variables.html">Переменные файлов конфигурации</a></span></dt>
  38. <dt><span class="sect1"><a href="language.variables.smarty.html">Зарезервированная переменная {$smarty}</a></span></dt>
  39. <dd><dl>
  40. <dt><span class="sect2"><a href="language.variables.smarty.html#language.variables.smarty.request">Переменные запроса</a></span></dt>
  41. <dt><span class="sect2"><a href="language.variables.smarty.html#language.variables.smarty.now">{$smarty.now}</a></span></dt>
  42. <dt><span class="sect2"><a href="language.variables.smarty.html#language.variables.smarty.const">{$smarty.const}</a></span></dt>
  43. <dt><span class="sect2"><a href="language.variables.smarty.html#language.variables.smarty.capture">{$smarty.capture}</a></span></dt>
  44. <dt><span class="sect2"><a href="language.variables.smarty.html#language.variables.smarty.config">{$smarty.config}</a></span></dt>
  45. <dt><span class="sect2"><a href="language.variables.smarty.html#language.variables.smarty.loops">{$smarty.section}, {$smarty.foreach}</a></span></dt>
  46. <dt><span class="sect2"><a href="language.variables.smarty.html#language.variables.smarty.template">{$smarty.template}</a></span></dt>
  47. <dt><span class="sect2"><a href="language.variables.smarty.html#language.variables.smarty.version">{$smarty.version}</a></span></dt>
  48. <dt><span class="sect2"><a href="language.variables.smarty.html#language.variables.smarty.ldelim">{$smarty.ldelim}, {$smarty.rdelim}</a></span></dt>
  49. </dl></dd>
  50. </dl>
  51. </div>
  52. <p>
  53. Smarty имеет несколько различных типов переменных. Он зависит от
  54. символа, с которого начинается, или в какой заключена переменная.
  55. </p>
  56. <p>
  57. Переменные в Smarty могут быть отображены или использованы как
  58. <a class="link" href="language.syntax.functions.html" title="Функции">функции</a>,
  59. <a class="link" href="language.syntax.attributes.html" title="Параметры">аргументы</a>,
  60. <a class="link" href="language.modifiers.html" title="Chapter 5. Модификаторы переменных">модификаторы</a>,
  61. внутри выражений условных операторов и т.д. Для
  62. вывода значения переменной необходимо указать имя переменной
  63. между <a class="link" href="variable.left.delimiter.html" title="$left_delimiter">разделителями</a>.
  64. </p>
  65. <div class="example">
  66. <a name="id2649930"></a><p class="title"><b>Example 4.1. Пример использования переменных</b></p>
  67. <div class="example-contents"><pre class="programlisting">
  68. [
  69. {$Name}
  70.  
  71. {$product.part_no} &lt;b&gt;{$product.description}&lt;/b&gt;
  72.  
  73. {$Contacts[row].Phone}
  74.  
  75. &lt;body bgcolor="{#bgcolor#}"&gt;
  76.  
  77. </pre></div>
  78. </div>
  79. <p><br class="example-break">
  80. </p>
  81. <div class="note" title="Полезный совет" style="margin-left: 0.5in; margin-right: 0.5in;">
  82. <h3 class="title">Полезный совет</h3>
  83. <p>
  84. При помощи
  85. <a class="link" href="chapter.debugging.console.html" title="Chapter 10. Отладочная консоль">отладочной консоли</a>
  86. можно легко просмотреть значения переменных Smarty.
  87. </p>
  88. </div>
  89. <p>
  90. </p>
  91. <div class="sect1" title="Переменные, назначенные из PHP">
  92. <div class="titlepage"><div><div><h2 class="title" style="clear: both">
  93. <a name="language.assigned.variables"></a>Переменные, назначенные из PHP</h2></div></div></div>
  94. <p>
  95. К переменным, которые были
  96. <a class="link" href="api.assign.html" title="assign()">назначены</a> из PHP можно обратиться,
  97. указав перед их именем знак доллара (<code class="literal">$</code>).
  98. Переменные, назначенные внутри шаблона при помощи функции
  99. <a class="link" href="language.custom.functions.html#language.function.assign" title="{assign}">{assign}</a>
  100. работают таким же образом.
  101. </p>
  102. <div class="example">
  103. <a name="id2650012"></a><p class="title"><b>Example 4.2. Назначенные переменные</b></p>
  104. <div class="example-contents">
  105. <p>PHP-скрипт</p>
  106. <pre class="programlisting">
  107.  
  108. &lt;?php
  109.  
  110. $smarty = new Smarty;
  111.  
  112. $smarty-&gt;assign('firstname', 'Doug');
  113. $smarty-&gt;assign('lastname', 'Evans');
  114. $smarty-&gt;assign('meetingPlace', 'New York');
  115.  
  116. $smarty-&gt;display('index.tpl');
  117.  
  118. ?&gt;
  119.  
  120. </pre>
  121. <p>
  122. Содержимое index.tpl:
  123. </p>
  124. <pre class="programlisting">
  125.  
  126. Hello {$firstname} {$lastname}, glad to see you can make it.
  127. &lt;br /&gt;
  128. {* это не сработает, потому что переменные чувствительны к регистру *}
  129. This weeks meeting is in {$meetingplace}.
  130. {* а это - сработает *}
  131. This weeks meeting is in {$meetingPlace}.
  132.  
  133. </pre>
  134. <p>
  135. Результат обработки:
  136. </p>
  137. <pre class="screen">
  138.  
  139. Hello Doug Evans, glad to see you can make it.
  140. &lt;br /&gt;
  141. This weeks meeting is in .
  142. This weeks meeting is in New York.
  143.  
  144. </pre>
  145. </div>
  146. </div>
  147. <br class="example-break"><div class="sect2" title="Ассоциативные массивы">
  148. <div class="titlepage"><div><div><h3 class="title">
  149. <a name="language.variables.assoc.arrays"></a>Ассоциативные массивы</h3></div></div></div>
  150. <p>
  151. Вы можете также обращаться к ассоциативным массивам, которые
  152. назначены из PHP, указав ключ после символа '.' (точка).
  153. </p>
  154. <div class="example">
  155. <a name="id2650704"></a><p class="title"><b>Example 4.3. Обращение к ассоциативному массиву</b></p>
  156. <div class="example-contents">
  157. <pre class="programlisting">
  158.  
  159. &lt;?php
  160. $smarty-&gt;assign('Contacts',
  161. array('fax' =&gt; '555-222-9876',
  162. 'email' =&gt; 'zaphod@slartibartfast.example.com',
  163. 'phone' =&gt; array('home' =&gt; '555-444-3333',
  164. 'cell' =&gt; '555-111-1234')
  165. )
  166. );
  167. $smarty-&gt;display('index.tpl');
  168. ?&gt;
  169.  
  170. </pre>
  171. <p>
  172. Содержимое index.tpl:
  173. </p>
  174. <pre class="programlisting">
  175.  
  176. {$Contacts.fax}&lt;br /&gt;
  177. {$Contacts.email}&lt;br /&gt;
  178. {* you can print arrays of arrays as well *}
  179. {$Contacts.phone.home}&lt;br /&gt;
  180. {$Contacts.phone.cell}&lt;br /&gt;
  181.  
  182. </pre>
  183. <p>
  184. Результат обработки:
  185. </p>
  186. <pre class="screen">
  187.  
  188. 555-222-9876&lt;br /&gt;
  189. zaphod@slartibartfast.example.com&lt;br /&gt;
  190. 555-444-3333&lt;br /&gt;
  191. 555-111-1234&lt;br /&gt;
  192.  
  193. </pre>
  194. </div>
  195. </div>
  196. <br class="example-break">
  197. </div>
  198. <div class="sect2" title="Индексы массивов">
  199. <div class="titlepage"><div><div><h3 class="title">
  200. <a name="language.variables.array.indexes"></a>Индексы массивов</h3></div></div></div>
  201. <p>
  202. Вы можете обращаться к массивам по их индексам примерно так же,
  203. как и в самом PHP.
  204. </p>
  205. <div class="example">
  206. <a name="id2650777"></a><p class="title"><b>Example 4.4. Обращение к массиву по индексу</b></p>
  207. <div class="example-contents">
  208. <pre class="programlisting">
  209.  
  210. &lt;?php
  211. $smarty-&gt;assign('Contacts', array(
  212. '555-222-9876',
  213. 'zaphod@slartibartfast.example.com',
  214. array('555-444-3333',
  215. '555-111-1234')
  216. ));
  217. $smarty-&gt;display('index.tpl');
  218. ?&gt;
  219.  
  220. </pre>
  221. <p>
  222. Содержимое index.tpl:
  223. </p>
  224. <pre class="programlisting">
  225.  
  226. {$Contacts[0]}&lt;br /&gt;
  227. {$Contacts[1]}&lt;br /&gt;
  228. {* you can print arrays of arrays as well *}
  229. {$Contacts[2][0]}&lt;br /&gt;
  230. {$Contacts[2][1]}&lt;br /&gt;
  231.  
  232. </pre>
  233. <p>
  234. Результат обработки:
  235. </p>
  236. <pre class="screen">
  237.  
  238. 555-222-9876&lt;br /&gt;
  239. zaphod@slartibartfast.example.com&lt;br /&gt;
  240. 555-444-3333&lt;br /&gt;
  241. 555-111-1234&lt;br /&gt;
  242.  
  243. </pre>
  244. </div>
  245. </div>
  246. <br class="example-break">
  247. </div>
  248. <div class="sect2" title="Объекты">
  249. <div class="titlepage"><div><div><h3 class="title">
  250. <a name="language.variables.objects"></a>Объекты</h3></div></div></div>
  251. <p>
  252. К свойствам <a class="link" href="advanced.features.html#advanced.features.objects" title="Объекты">объектов</a>,
  253. назначенных из PHP, можно обратиться, указав имя свойства после символов
  254. '-&gt;'.
  255. </p>
  256. <div class="example">
  257. <a name="id2650853"></a><p class="title"><b>Example 4.5. Обращение к свойствам объекта</b></p>
  258. <div class="example-contents">
  259. <pre class="programlisting">
  260.  
  261. name: {$person-&gt;name}&lt;br /&gt;
  262. email: {$person-&gt;email}&lt;br /&gt;
  263.  
  264. </pre>
  265. <p>
  266. Результат обработки:
  267. </p>
  268. <pre class="screen">
  269.  
  270. name: Zaphod Beeblebrox&lt;br /&gt;
  271. email: zaphod@slartibartfast.example.com&lt;br /&gt;
  272.  
  273. </pre>
  274. </div>
  275. </div>
  276. <br class="example-break">
  277. </div>
  278. </div>
  279. </div>
  280. <div class="navfooter">
  281. <hr>
  282. <table width="100%" summary="Navigation footer">
  283. <tr>
  284. <td width="40%" align="left">
  285. <a accesskey="p" href="language.escaping.html">Prev</a> </td>
  286. <td width="20%" align="center"><a accesskey="u" href="smarty.for.designers.html">Up</a></td>
  287. <td width="40%" align="right"> <a accesskey="n" href="language.config.variables.html">Next</a>
  288. </td>
  289. </tr>
  290. <tr>
  291. <td width="40%" align="left" valign="top">Предотвращение обработки Smarty </td>
  292. <td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td>
  293. <td width="40%" align="right" valign="top"> Переменные файлов конфигурации</td>
  294. </tr>
  295. </table>
  296. </div>
  297. </body>
  298. </html>