接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之間數據中的首尾空格和換行