Variables assigned from PHP {#language.assigned.variables}
===========================
Assigned variables that are referenced by preceding them with a dollar
(`$`) sign.
PHP code
assign('firstname', 'Doug');
$smarty->assign('lastname', 'Evans');
$smarty->assign('meetingPlace', 'New York');
$smarty->display('index.tpl');
?>
`index.tpl` source:
Hello {$firstname} {$lastname}, glad to see you can make it.
{* this will not work as $variables are case sensitive *}
This weeks meeting is in {$meetingplace}.
{* this will work *}
This weeks meeting is in {$meetingPlace}.
This above would output:
Hello Doug Evans, glad to see you can make it.
This weeks meeting is in .
This weeks meeting is in New York.
Associative arrays {#language.variables.assoc.arrays}
------------------
You can also reference associative array variables by specifying the key
after a dot \".\" symbol.
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` source:
{$Contacts.fax}
{$Contacts.email}
{* you can print arrays of arrays as well *}
{$Contacts.phone.home}
{$Contacts.phone.cell}
this will output:
555-222-9876
zaphod@slartibartfast.example.com
555-444-3333
555-111-1234
Array indexes {#language.variables.array.indexes}
-------------
You can reference arrays by their index, much like native PHP syntax.
assign('Contacts', array(
'555-222-9876',
'zaphod@slartibartfast.example.com',
array('555-444-3333',
'555-111-1234')
));
$smarty->display('index.tpl');
?>
`index.tpl` source:
{$Contacts[0]}
{$Contacts[1]}
{* you can print arrays of arrays as well *}
{$Contacts[2][0]}
{$Contacts[2][1]}
This will output:
555-222-9876
zaphod@slartibartfast.example.com
555-444-3333
555-111-1234
Objects {#language.variables.objects}
-------
Properties of [objects](#advanced.features.objects) assigned from PHP
can be referenced by specifying the property name after the `->` symbol.
name: {$person->name}
email: {$person->email}
this will output:
name: Zaphod Beeblebrox
email: zaphod@slartibartfast.example.com