Змінні
Змінні шаблону починаються із знаку $ доллара. Вони можуть складатися з цифр, букв, знаків підкреслення - як і звичайні змінні PHP. Ви можете звертатися до масивів, що мають числові і нечислові індекси. Ви також можете звертатися до властивостей і методів об'єктів. Змінні конфігураційного файлу - це виключення з доларового синтаксису. До них можна звертатися, оточивши їх #знаками дієзу# або скориставшись спеціальною змінною $smarty.config.
Приклад 3-2. Змінні
{$foo} <-- відображення простій змінній (не масив і не об'єкт)
{$foo[4]} <-- відображає 5-й елемент числового масиву
{$foo.bar} <-- відображає значення ключа "bar" асоціативного масиву, подібно PHP $foo['bar']
{$foo.$bar} <-- відображає значення змінного ключа масиву, подібно PHP $foo[$bar]
{$foo->bar} <-- відображає властивість "bar" об'єкту
{$foo->bar()} <-- відображає значення методу "bar" об'єкту, що повертається
{#foo#} <-- відображає змінну "foo" конфігураційного файлу
{$smarty.config.foo} <-- синонім для {#foo#}
{$foo[bar]} <-- синтаксис доступний тільки в циклі section, див. {section}
{assign var=foo value="baa"}$foo} <-- відображає "baa", див. {assign}
Також доступна безліч інших комбінацій
{$foo.bar.baz}
{$foo.$bar.$baz}
{$foo[4].baz}
{$foo[4].$baz}
{$foo.bar.baz[4]}
{$foo->bar($baz,2,$bar)} <-- передача параметру
{"foo"} <-- статичні значення також дозволені
Див. також "Зарезервована змінна $smarty" і "змінні файлів конфігурації".