变量
{$foo} <-- 显示简单的变量 (非数组/对象) {$foo[4]} <-- 在0开始索引的数组中显示第五个元素 {$foo.bar} <-- 显示"bar"下标指向的数组值,等同于PHP的$foo['bar'] {$foo.$bar} <-- 显示以变量$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} 数学运算和嵌入标签: {$x+$y} // 显示x加y的和 {assign var=foo value=$x+$y} // 和用于赋值 {$foo[$x+3]} // 作为下标使用 {$foo={counter}+3} // 标签内的标签 {$foo="this is message {counter}"} // 在双引号内的标签 定义数组: {assign var=foo value=[1,2,3]} {assign var=foo value=['y'=>'yellow','b'=>'blue']} {assign var=foo value=[1,[9,8],3]} // 可嵌套 缩写方式: {$foo=$bar+2} {$foo = strlen($bar)} // 函数赋值 {$foo = myfunct( ($x+$y)*3 )} // 函数参数 {$foo.bar=1} // 赋值给特定的数组元素 {$foo.bar.baz=1} {$foo[]=1} // 附加到数组 Smarty 点号语法: {$foo.a.b.c} => $foo['a']['b']['c'] {$foo.a.$b.c} => $foo['a'][$b]['c'] // 变量下标 {$foo.a.{$b+4}.c} => $foo['a'][$b+4]['c'] // 表达式下标 {$foo.a.{$b.c}} => $foo['a'][$b['c']] // 嵌套下标 类似PHP的语法,另一种点号的语法: {$foo[1]} // 一般的 {$foo['bar']} {$foo['bar'][1]} {$foo[$x+$x]} // 下标可以是各种表达式 {$foo[$bar[1]]} // 嵌套下标 {$foo[section_name]} // smarty {section} 存取, 非数组存取! 变量构造变量: $foo // 一般的变量 $foo_{$bar} // 变量名包含了其他变量 $foo_{$x+$y} // 变量名包含了表达式 $foo_{$bar}_buh_{$blar} // 更复杂的 {$foo_{$x}} // 如$x = 1,那么将显示$foo_1的值 对象链: {$object->method1($x)->method2($y)} PHP函数直接使用: {time()
函数
每个Smarty的标签都可以是显示一个 变量或者调用 某种类型的函数。 调用和显示的方式是在定界符内包含了函数,和其 属性, 如:{funcname attr1="val1" attr2="val2"}
.
Example 3.3. 函数语法
{config_load file="colors.conf"} {include file="header.tpl"} {insert file="banner_ads.tpl" title="My Site"} {if $logged_in} Welcome, <span style="color:{#fontColor#}">{$name}!</span> {else} hi, {$name} {/if} {include file="footer.tpl"}