Глава 4. Переменные
Smarty имеет несколько различных типов переменных. Он зависит от
символа, с которого начинается, или в какой заключена переменная.
Variables in Smarty can be either displayed directly or used as arguments
for function
attributes and
modifiers, inside conditional expressions,
etc. To print a variable, simply enclose it in the
delimiters so that it
is the only thing contained between them. Examples:
Переменные в 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> |
|