Get Smarty

Donate

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Buy cheap glasses from Cheapglasses123.com and save up to 80%.

Where to buy prescription glasses? EyewearCanada.com is your best choice!

Visit www.sport-kick.com for cheap soccer cleats, sneakers and Soccer Jerseys updates

Advertisement

Chapter 4. Переменные

Smarty имеет несколько различных типов переменных. Он зависит от символа, с которого начинается, или в какой заключена переменная.

Переменные в Smarty могут быть отображены или использованы как функции, аргументы, модификаторы, внутри выражений условных операторов и т.д. Для вывода значения переменной необходимо указать имя переменной между разделителями.

Example 4.1. Пример использования переменных

[
{$Name}

{$product.part_no} <b>{$product.description}</b>

{$Contacts[row].Phone}

<body bgcolor="{#bgcolor#}">

   


Полезный совет

При помощи отладочной консоли можно легко просмотреть значения переменных Smarty.

Переменные, назначенные из PHP

К переменным, которые были назначены из PHP можно обратиться, указав перед их именем знак доллара ($). Переменные, назначенные внутри шаблона при помощи функции {assign} работают таким же образом.

Example 4.2. Назначенные переменные

PHP-скрипт


<?php

$smarty = new Smarty;

$smarty->assign('firstname', 'Doug');
$smarty->assign('lastname', 'Evans');
$smarty->assign('meetingPlace', 'New York');

$smarty->display('index.tpl');

?>

  

Содержимое index.tpl:


Hello {$firstname} {$lastname}, glad to see you can make it.
<br />
{* это не сработает, потому что переменные чувствительны к регистру *}
This weeks meeting is in {$meetingplace}.
{* а это - сработает *}
This weeks meeting is in {$meetingPlace}.

  

Результат обработки:


Hello Doug Evans, glad to see you can make it.
<br />
This weeks meeting is in .
This weeks meeting is in New York.

  

Ассоциативные массивы

Вы можете также обращаться к ассоциативным массивам, которые назначены из PHP, указав ключ после символа '.' (точка).

Example 4.3. Обращение к ассоциативному массиву


<?php
$smarty->assign('Contacts',
    array('fax' => '555-222-9876',
          'email' => 'zaphod@slartibartfast.example.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 />

   

Результат обработки:


555-222-9876<br />
zaphod@slartibartfast.example.com<br />
555-444-3333<br />
555-111-1234<br />

   

Индексы массивов

Вы можете обращаться к массивам по их индексам примерно так же, как и в самом PHP.

Example 4.4. Обращение к массиву по индексу


<?php
$smarty->assign('Contacts', array(
                           '555-222-9876',
                           'zaphod@slartibartfast.example.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 />

   

Результат обработки:


555-222-9876<br />
zaphod@slartibartfast.example.com<br />
555-444-3333<br />
555-111-1234<br />

   

Объекты

К свойствам объектов, назначенных из PHP, можно обратиться, указав имя свойства после символов '->'.

Example 4.5. Обращение к свойствам объекта


name: {$person->name}<br />
email: {$person->email}<br />

   

Результат обработки:


name: Zaphod Beeblebrox<br />
email: zaphod@slartibartfast.example.com<br />

   

Comments
No comments for this page.

Advertisement