smarty中的内建函数(二)if、section...

接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之间数据中的首尾空格和换行

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章