Example 3.5. 例子
{func var="test $foo test"} // 识别变量 $foo {func var="test $foo_bar test"} // 识别变量 $foo_bar {func var="test `$foo[0]` test"} // 识别变量 $foo[0] {func var="test `$foo[bar]` test"} // 识别变量 $foo[bar] {func var="test $foo.bar test"} // 识别变量 $foo (不是 $foo.bar) {func var="test `$foo.bar` test"} // 识别变量 $foo.bar {func var="test `$foo.bar` test"|escape} // 引号外的修饰器! {func var="test {$foo|escape} test"} // 引号内的修饰器! {func var="test {time()} test"} // PHP函数结果 {func var="test {counter} test"} // 插件的结果 {func var="variable foo is {if !$foo}not {/if} defined"} // Smarty区块函数
Example 3.6. 例子
{* 将使用$tpl_name的值 *} {include file="subdir/$tpl_name.tpl"} {* 不使用$tpl_name的值 *} {include file='subdir/$tpl_name.tpl'} // 必须用双引号才能用变量值! {* 当变量包含了点号“.”,必须用单引号括起来 *} {cycle values="one,two,`$smarty.config.myval`"} {* 当变量包含了点号“.”,必须用单引号括起来 *} {include file="`$module.contact`.tpl"} {* 点号后面跟着变量 *} {include file="`$module.$view`.tpl"}
虽然Smarty能处理比较复杂的表达式和语法,但是最好保持模板语法的简洁, 把关注的焦点放在显示层面。如果你发现模板语法非常复杂,那么 最好把这些逻辑代码转移到插件或者修饰器上,用PHP代码进行编写。
参见字符转换
。