接smarty中的内建函数(一)
7、if,elseif,else
主要根据条件来决定处理的方式
$role = '1';
$smarty->assign('role',$role);
<{if $role =='1'}>
role_1
<{elseif $role == 2}>
role_2
<{else}>
no_role
<{/if}>
结果:role_1
eq(相等)、ne(不相等)、neq(不相等)、gt(大于)、lt(小于)、lte(小于等于)、le(小于等于)、gte(大于等于)、ge(大于等于)、is even(是否是偶数)、is odd(是否是奇数)、is not even(是否是偶数)、is not odd(是否是奇数)、not(非/反)、mod(求模)、div by($a/$b整除)、even by($a/$b%2==0,相除再判断是否是偶数)、odd by(相除再判断是否是奇数)、===(相等包括类型)、==、!=、>、<、<=、>=
8、ldelim,rdelim
用于输出分隔符 { },ldelim左分隔符,rdelim右分隔符
<{$role}><{*输出$role的值,如15*}>
<{ldelim}>$role<{rdelim}><{*输出:<{$role}>,不会再次解析,会当字符串输出*}>
9、literal
在<{literal}><{/literal}>中的内容不会解析,当作文本处理
10、php
<{php}><{/php}>之间可以嵌入Php代码
11、section,sectionelse
主要用于遍历数组,效率、功能都比foreach强
$arr = array(
array(
'id' => '000001',
'title' => 'aaaaaa',
'name' => 'zhao',
),
array(
'id' => '000002',
'name' => 'qian',
),
array(
'id' => '000003',
'name' => 'sun',
),
array(
'id' => '000004',
'name' => 'li',
),
);
$smarty->assign('arr',$arr);
$smarty->display('new.html');
<{*
name,必选,循环的名称,代表本次循环的数组下标
loop,必选,循环数据的来源
start,可选,循环开始位置,下标从0开始
step,可选,步长,若为负,遍历从后向前
max,可选,最大循环次数
show,可选,是否显示循环
*}>
<{section name=suse loop=$arr start=1}>
<{*start=1从数组的第二个元素开始循环 show=false,下面的输出不显示*}>
<{if $smarty.section.suse.first}>
第一次循环<br>
<{/if}>
<{if $smarty.section.suse.last}>
最后一次循环<br>
<{/if}>
本次索引:<{$smarty.section.suse.index}><{*当前循环的索引,从0开始,如果指定了start,则从start开始*}>
上次索引:<{$smarty.section.suse.index_prev}><{*上一个循环的索引*}>
下次索引:<{$smarty.section.suse.index_next}><{*下一个循环的索引*}>
执行到本次的循环次数:<{$smarty.section.suse.iteration}><{*真实循环次数,不受step,start,max的影响,与rownum相同*}>
id:<{$arr[suse].id}>
name:<{$arr[suse].name}><br>
<{sectionelse}><{*loop变量没有值的时候被执行*}>
none
<{/section}>
<br>
上面一共执行了 <{$smarty.section.suse.total}> 次循环。
结果:
12、strip<{strip}><{/strip}>,显示前删除strip之间数据中的首尾空格和换行