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

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