Variables in Smarty


Template variables start with the $dollar sign. They can contain numbers, letters and underscores, much like a PHP variable. You can reference arrays by index numerically or non-numerically. Also reference object properties and methods.

Config file variables are an exception to the $dollar syntax and are instead referenced with surrounding #hashmarks#, or via the $smarty.config variable.

Example 3-2. Variables

{$foo} <– displaying a simple variable (non array/object)
{$foo[4]} <– display the 5th element of a zero-indexed array
{$} <– display the “bar” key value of an array, similar to PHP $foo[‘bar’]
{$foo.$bar} <– display variable key value of an array, similar to PHP $foo[$bar]
{$foo->bar} <– display the object property “bar”
{$foo->bar()} <– display the return value of object method “bar”
{#foo#} <– display the config file variable “foo”
{$} <– synonym for {#foo#}
{$foo[bar]} <– syntax only valid in a section loop, see {section}
{assign var=foo value=’baa’}{$foo} <– displays “baa”, see {assign}

Many other combinations are allowed

{$foo->bar($baz,2,$bar)} <– passing parameters
{“foo”} <– static values are allowed

{* display the server variable “SERVER_NAME” ($_SERVER[‘SERVER_NAME’])*}

Request variables such as $_GET, $_SESSION, etc are available via the reserved $smarty variable.


Please enter your comment!
Please enter your name here