Templatevariablennamen beginnen mit einem $dollar-Zeichen. Sie können Ziffer, Buchstaben und Unterstriche ('_') enthalten, sehr ähnlich den Variablen in PHP. Numerische Arrayindizes können referenziert werden und auch Nichtnumerische. Zugriff auf Objekteigenschaften und -methoden ist auch möglich. Konfigurationsvariablen sind einer Ausname was die Dollarzeichen-Syntax angeht. Diese werden durch umgebende #Doppelkreuze# oder über die Varible $smarty.config referenziert.
Example 3.2. Variablen
{$foo} <-- Zeigt einfache Variable an (kein Array oder Objekt) {$foo[4]} <-- Zeigt 5. Element von einem Array an, deren Schlussel bei 0 beginnen {$foo.bar} <-- Zeigt das Element zum Schlüssel "bar" des Arrays an (wie PHPs $foo['bar']) {$foo.$bar} <-- Zeigt das Element eines variablen Schlüssels an (wie PHPs $foo[$bar]) {$foo->bar} <-- Zeigt eine Eigenschaft "bar" des Objekts $foo an {$foo->bar()} <-- Zeigt den Rückgabewert der Objectmethode "bar" an {#foo#} <-- Zeift die Konfigurationsvariable "foo" an {$smarty.config.foo} <-- Synonym für {#foo#} {$foo[bar]} <-- Syntax zum zugriff auf Element in einer Section-Schleife, siehe {section} {assign var=foo value="baa"}{$foo} <-- Gibt "baa" aus, siehe {assign} Viele weitere Kombinationen sind erlaubt {$foo.bar.baz} {$foo.$bar.$baz} {$foo[4].baz} {$foo[4].$baz} {$foo.bar.baz[4]} {$foo->bar($baz,2,$bar)} <-- Parameter übergeben {"foo"} <-- Statische (konstante) Werte sind auch erlaubt
Siehe auch: Die reservierte {$smarty} Variable und Verwendung von Variablen aus Konfigurationsdateien.