变量

    模板变量以$符号开始。它们可以包含数字、字符以及下划线,非常类似于PHP变量。你可以用数字索引或非数字索引引用数组。同样也可以引用对象属性和方法。

    配置文件变量是$语法的特例,引用它们需要用类似#hashmarks#的语法,或通过$smarty.config变量。

例子3-2. 变量

{$foo}        <-- 显示一个简单变量(非数组、非对象)
{$foo[4]}     <-- 显示一个0基底数组的第五个元素
{$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}
{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"}       <-- 允许静态值

{* 显示服务器变量"SERVER_NAME" ($_SERVER['SERVER_NAME'])*}
{$smarty.server.SERVER_NAME}

    请求变量,诸如$_GET,$_SESSION等可以通过保留的$smarty变量获得。

    参见$smarty配置变量{assign}以及assign()