XOOPS Brasil

 

Chapter 4. Variáveis

No Smarty há vários tipos diferentes de variáveis. O tipo da variável depende do prefixo que ela usa (ou do símbolo pelo qual ela está contida).

Variáveis no Smarty podem tanto serem exibidas diretamente ou usadas como argumentos para atributos de funções e modificadores, dentro de expressões condicionais, etc. Para que uma variável seja exibida o nome dela deve estar dentro dos delimitadores e não pode conter nenhum outro caracter. Veja os exemplos abaixo:


{$Nome}

{$Contatos[row].Telefone}

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

  

Variáveis definidas do PHP

Variáveis que são definidas do PHP são referenciadas precedendo elas com um sinal de sifrão $. Variáveis definidas dentro do template com a função assign também são mostradas desta maneira.

Example 4.1. Variáveis definidas

Hello {$firstname}, glad to see you could make it.
<p>
Your last login was on {$lastLoginDate}.

MOSTRA:

Hello Doug, glad to see you could make it.
<p>
Your last login was on January 11th, 2001.

Associative arrays

Você também pode referenciar matrizes associativas que são definidas no PHP especificando a chave depois do símbolo '.' (ponto).

Example 4.2. Acessando variáveis de matriz associativa

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>

MOSTRA:

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

Índices de Matrizes

Você pode referencia matrizes pelo seu índice, muito parecido com a sintaxe nativa do PHP.

Example 4.3. Acesando matrizes por seus índices

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>

MOSTRA:

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

Objetos

Propriedades de objetos definidos do PHP podem ser referenciados especificando-se o nome da propriedade depois do símbolo '->'.

Example 4.4. Acessando propriedades de objetos

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

MOSTRA:

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