What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
Table of Contents
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 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.
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>
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>
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>