常見的就下面三種,if-elseif-else,foreach和section,都是用來控制內容輸出結構,所以在今天的PHP教程中,提出(注明:此教程部分來自網絡,部分摘自手冊)
1.條件選擇結構 if-elseif-else
<{if 表達式}> ... <{else if 表達式}> ... <{else}> ... <{/if}>
條件修飾詞:eq、ne、neq、gt、lt、lte、le、gte、ge、is even、is odd、is not even、is not odd、not、mod、div by、even by、odd by、==、!=、>、<、<=、>=.
解釋:
equal : 相等、not equal:不等於、greater than:大於、less than:小於、less than or equal:小於等於、great than or equal:大於等於、is even:是偶數、is odd:是奇數、is not even:不是偶數、is not odd:不是奇數、not:非、mod:取余、div by:被。。。除
- {if $name eq "admin"}
- ......
- {elseif $name eq "Wilma"}}
- ......
- {else}
- ......
- {/if}
2.運用foreach循環遍歷
<{ foreach 表達式}> ... <{ foreachelse}> ... <{/ foreach }>
- $smarty->assign("contacts", array(array("phone" => "1", "fax" => "2", "cell" => "3"),
- array("phone" => "555-4444", "fax" => "555-3333", "PHP教程" => "www.phpddt.com")));
- *}
-
-
- {foreach name=outer item=contact from=$contacts}
- {foreach key=key item=item from=$contact}
- {$key}: {$item}<br>
- {/foreach}
- {/foreach}
3.section可實現更復雜的循環遍歷
<{section loop= $varName[,start=$start,step=$setp,max=$max,$show=true]}>
name: section的名稱,不用加$;
$loop: 要循環的變量,程度中要使用assign對這個變量進行操作。
$start: 開始循環的下標。默認為0;
$step: 每次循環下標的增數;
$show : boolean型。決定是否對於這塊進行顯示。默認為true;
<{section}>的屬性;
index:循環下標。默認為0;
index_prev:當前下標的上一個值,默認為-1;
index_next:當前下標的下一個值,默認為1;
first:是否為第一下循環;
last:是否為最後一個循環;
iteration:循環個數;
rownum:當前行號,iteration的別名;
loop:最後一個循環號。Section的循環次數;
show:是否顯示;
<{section loop=$News}>
新聞編號:<{$News[loop].newID}><br>
新聞內容:<{$News[loop].newTitle}><br>
<{sectionelse}>
I am sorry
<{/section}>
對於一維數組:
{section name=row loop=$list}
{$list.name}
{/section}
對於二維數組:
{section name=row loop=$list}
{$list[row].name}
{/section}
另外還可以直接單一輸出:
< { $commendList.0.infoType } >
< { $commendList.1.infoType } >
對於三維數組:
<{section name=cate loop=$myarray}>
<{section name=scate loop=$myarray[cate]}>
id ------> <{$myarray[cate][scate].id}>
title --------> <{$myarray[cate][scate].title}>
url ----------> <{$myarray[cate][scate].url}>
<{/section}>
<{/section}>
關於PHP教程的smarty控制語句整理的就是這些了,希望對大家有所幫助....
*