Smarty中有很好的扩展,提供很多定义的函数
1、assign
定义一个模板变量并赋值
格式:<{assign var="变量名" value="值"}>
<{assign var="role" value="role_1"}><{*定义一个role变量,值为role_1*}>
<{$role}><{*输出role_1*}>
2、counter
计数
<{*
counter用于计数,执行一次加一次
start,可选,开始数
skip,可选,步长
direction,可选,计数方向,增/减
print,可选,是否输出
assign,可选,counter不输出,将内容保存到assign指定的变量中
*}>
<{counter start=0 skip=3 direction=up print=true assign="role"}>
<{counter}>
<{counter}>
<{counter}>
<{$role}><{*输出9*}>
3、cycle
自动轮转使用一组值
$data = array('001','002','003');
$smarty->assign('data',$data);
<{*
cycle轮转
values,必选,值,
name,可选,轮转的名称
print,可选,是否输出
advance,可选,是否使用下一值,默认false
delimiter,可选,values之间的分隔符号,默认为","
assign,可选,指定给一个变量
*}>
<table>
<{section loop=$data name=row}>
<tr bgcolor="<{cycle values="#bbb,#eee,red" print=true}>">
<td><{$data[row]}></td>
<tr>
<{/section}>
</table>
结果:
![](https://img-my.csdn.net/uploads/201204/26/1335425794_7125.jpg)
4、debug
将调试信息输出到页面
可选参数:output,javascript或html(默认)
5、eval
按处理模板的方式计算取得变量的值. 该特性可用于在配置文件中的标签/变量中嵌入其它模板标签/变量
配置文件
name = "chuangrain"
printName = Your name is <{#name#}>!
<{config_load file="info.conf"}>
<{eval var=#printName# assign=info}>
<{$info}>
结果:
Your name is chuangrain!
6、fetch
获取本地文件或者其他文件的内容
<{fetch file="http://www.baidu.com" assign=baidu}>
<{$baidu}>