Bab 4. Variables
Smarty has several different types of variables. The type of the variable
depends on what symbol it is prefixed or enclosed within.
Variables in Smarty can be either displayed directly or used as arguments
for functions,
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.
Teladan 4-1. Example variables {$Name}
{$product.part_no} <b>{$product.description}</b>
{$Contacts[row].Phone}
<body bgcolor="{#bgcolor#}"> |
|
Variabel ditempatkan dari PHP
Variabel
assigned dari PHP direferensi oleh
pendahulunya dengan tanda dolar $ (seperti php).
Variabel yang ditempati dari dalam template dengan fungsi
{assign}
juga ditampilkan dengan cara ini.
Teladan 4-2. Variabel yang ditempati naskah php
assign(\'firstname\', \'Doug\');
$smarty->assign(\'lastname\', \'Evans\');
$smarty->assign(\'meetingPlace\', \'New York\');
$smarty->display(\'index.tpl\');
?>');
?> |
di mana konten index.tpl adalah:
Hello {$firstname} {$lastname}, glad to see you can make it.
<br />
{* ini tidak akan bekerja karena $variables adalah sensitif huruf *}
This weeks meeting is in {$meetingplace}.
{* ini akan bekerja *}
This weeks meeting is in {$meetingPlace}. |
Output di atas:
Hello Doug Evans, glad to see you can make it.
<br />
This weeks meeting is in .
This weeks meeting is in New York. |
|
Array asosiatif
Anda juga bisa mereferensi variabel array asosiatif yang ditempatkan dari
PHP dengan menetapkan kunci setelah simbol '.' (titik).
Teladan 4-3. Mengakses variabel array asosiatif
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\');
?>');
?> |
di mana konten index.tpl adalah:
{$Contacts.fax}<br />
{$Contacts.email}<br />
{* anda dapat menampilkan array dari array juga *}
{$Contacts.phone.home}<br />
{$Contacts.phone.cell}<br /> |
ini akan menampilkan:
555-222-9876<br />
zaphod@slartibartfast.example.com<br />
555-444-3333<br />
555-111-1234<br /> |
|
Indeks array
Anda bisa mereferensi array dengan indeksnya, lebih mirip dengan sintaks PHP.
Teladan 4-4. Mengakses array dengan indeks
assign(\'Contacts\', array(
\'555-222-9876\',
\'zaphod@slartibartfast.example.com\',
array(\'555-444-3333\',
\'555-111-1234\')
));
$smarty->display(\'index.tpl\');
?>');
?> |
di mana index.tpl adalah:
{$Contacts[0]}<br />
{$Contacts[1]}<br />
{* anda dapat menampilkan arrays dari arrays juga *}
{$Contacts[2][0]}<br />
{$Contacts[2][1]}<br /> |
Ini akan menampilkan:
555-222-9876<br />
zaphod@slartibartfast.example.com<br />
555-444-3333<br />
555-111-1234<br /> |
|
Obyek
Properti obyek
yang ditempatkan dari PHP dapat direferensi dengan menetapkan nama properti
setelah simbol ->.
Teladan 4-5. Mengakses properti obyek name: {$person->name}<br />
email: {$person->email}<br /> |
ini akan menampilkan:
name: Zaphod Beeblebrox<br />
email: zaphod@slartibartfast.example.com<br /> |
|