smarty中的自定义函数(一)assign、cycle、debug...

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,可选,指定给一个变量
*}>

<{section loop=$data name=row}>
">
	
<{/section}>
<{$data[row]}>
结果:

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}>




你可能感兴趣的:(Smarty)