Get Smarty

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:

Check reviews of PHP Web Hosting, compatible with Smarty Templates

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.
Post a Comment
All comments are moderated. Support questions are ignored, use the forums instead.
Author:
Email: (not shown)
What is 2 plus 13? (Are you human?)

Sponsors [info]

Cheap Website Hosting @hostdone.com
email marketing @ActiveCampaign
broadband deals @BroadbandGenie
Best UK Web Hosting @webhost.uk.net
Reliable UK and US Web Hosting @rshosting.com
Cheap US and UK Web Hosting @infrenion.com
I.T Certification Exams @pass-guaranteed.com
Certification Practice Tests @firsttrycertify.com
Certification Practice Exam Questions @ace-it-certifications.com
Broadband Speed Test @broadbandspeed.co.uk
bulk email software @americaint.com
ASP.NET hosting @aspnethosting.co.uk