Глава 4. Переменные
Smarty имеет несколько различных типов переменных. Он зависит от
символа, с которого начинается, или в какой заключена переменная.
Переменные в Smarty могут быть отображены или использованы как аргументы
функций и модификаторов, внутри выражений условных операторов и т.д. Для
вывода значения переменной надо просто указать между разделителями имя
переменной.
[
{$Name}
{$Contacts[row].Phone}
<body bgcolor="{#bgcolor#}">
|
Переменные, установленные в PHP
Переменные, установленные в PHP, употребляются со знаком доллар
$ перед ним. Переменные, установленные в
шаблоне с помощью функции assign употребляются
аналогичным образом.
Пример 4-1. Установленные переменные
Привет {$firstname}, мы рады снова тебя видеть.
<p>
Последний раз ты посещал нас {$lastLoginDate}.
OUTPUT:
Привет Петя, мы рады снова тебя видеть.
<p>
Последний раз ты посещал нас January 11th, 2001.
|
|
Ассоциативные массивы
Чтобы использовать переменную из ассоциативного массива,
надо указать ключ элемента после знака '.' (точка).
Пример 4-2. доступ к перременным ассоциативного массива
index.php:
$smarty = new Smarty;
$smarty->assign('Contacts',
array('fax' => '555-222-9876',
'email' => 'zaphod@slartibartfast.com',
'phone' => array('home' => '555-444-3333',
'cell' => '555-111-1234')));
$smarty->display('index.tpl');
index.tpl:
{$Contacts.fax}<br>
{$Contacts.email}<br>
{* you can print arrays of arrays as well *}
{$Contacts.phone.home}<br>
{$Contacts.phone.cell}<br>
OUTPUT:
555-222-9876<br>
zaphod@slartibartfast.com<br>
555-444-3333<br>
555-111-1234<br>
|
|
Индексированные массивы
Можно использовать переменную из массива по е индексу.
Синтаксис аналогичен PHP.
Пример 4-3. доступ к елементу массива по его индексу
index.php:
$smarty = new Smarty;
$smarty->assign('Contacts',
array('555-222-9876',
'zaphod@slartibartfast.com',
array('555-444-3333',
'555-111-1234')));
$smarty->display('index.tpl');
index.tpl:
{$Contacts[0]}<br>
{$Contacts[1]}<br>
{* you can print arrays of arrays as well *}
{$Contacts[2][0]}<br>
{$Contacts[2][1]}<br>
OUTPUT:
555-222-9876<br>
zaphod@slartibartfast.com<br>
555-444-3333<br>
555-111-1234<br>
|
|
Объекты
Чтобы использовать свойства обьектов, надо указать перед именем
атрибута знак `->'.
Пример 4-4. доступ к свойствам объекта
name: {$person->name}<br>
email: {$person->email}<br>
OUTPUT:
name: Zaphod Beeblebrox<br>
email: zaphod@slartibartfast.com<br>
|
|