Smarty foreach,foreachelse


foreach,foreachelse

Table of Contents目錄

iteration 用於顯示當前迴圈的執行次數[待考]

first : 當前 foreach 迴圈第一次執行時 first 被設定成 true.

last : 當前 foreach 迴圈執行到最後一遍時 last 被設定成 true.

show是 foreach 的一個引數. 取值為布林值 true 或 false. 如果指定為 false 該迴圈不顯示,如果迴圈指定了 foreachelse 子句,該子句顯示與否也取決於 show 的取值.

total用於顯示迴圈執行的次數,可以在迴圈中或迴圈執行後呼叫.

 

Attribute Name Type Required Default 描述
from string Yes n/a The name of the array you are looping through
item string Yes n/a The name of the variable that is the current element
key string No n/a The name of the variable that is the current key
name string No n/a The name of the foreach loop for accessing foreach properties

屬性 型別 是否必須 預設值 描述
from string Yes n/a 待回圈陣列的名稱
item string Yes n/a 當前處理元素的變數名稱
key string No n/a

當前處理元素的鍵名

name string No n/a 該迴圈的名稱,用於存取該迴圈

 

foreach 是除 section 之外處理迴圈的另一種方案(根據不同需要選擇不同的方案).
foreach 用於處理簡單陣列(陣列中的元素的型別一致),它的格式比 section 簡單許多,缺點是只能處理簡單陣列.
foreach 必須和 /foreach 成對使用,且必須指定 from 和 item 屬性.
name 屬性可以任意指定(字母、數位和下劃線的組合).
foreach 可以巢狀,但必須保證巢狀中的 foreach 名稱唯一.
from 屬性(通常是陣列)決定回圈的次數.
foreachelse 語句在 from 變數沒有值的時候被執行.

 

Example 7-4. foreach

例 7-4. foreach 演示

{* this example will print out all the values of the $custid array *}
{* 該例將輸出陣列 $custid 中的所有元素的值 *}
{foreach from=$custid item=curr_id}
	id: {$curr_id}<br>
{/foreach}

OUTPUT:

id: 1000<br>
id: 1001<br>
id: 1002<br>

Example 7-5. foreach key
例 7-5. foreach 鍵的演示

{* The key contains the key for each looped value

assignment looks like this:

$smarty->assign("contacts", array(array("phone" => "1", "fax" => "2", "cell" => "3"),
 array("phone" => "555-4444", "fax" => "555-3333", "cell" => "760-1234")));
*}
{* 鍵就是陣列的下標,請參看關於陣列的解釋 *}

{foreach name=outer item=contact from=$contacts}
 {foreach key=key item=item from=$contact}
 {$key}: {$item}<br>
 {/foreach}
{/foreach}

OUTPUT:

phone: 1<br>
fax: 2<br>
cell: 3<br>
phone: 555-4444<br>
fax: 555-3333<br>
cell: 760-1234<br>


foreach 迴圈有自己的變數名,使用該變數名可以存取該迴圈. 使用方法為{$smarty.foreach.foreachname.varname},其中 foreachname 即在 foreach 中指定的 name 屬性.