Smarty foreach,foreachelse


Table of Contents目錄

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

first : 當前 foreach 循環第一次執行時 first 被設置成 true.

last : 當前 foreach 循環執行到最後一遍時 last 被設置成 true.

show是 foreach 的一個參數. 取值爲布爾值 true 或 false. 如果指定爲 false 該循環不顯示,如果循環指定了 foreachelse 子句,該子句顯示與否也取決於 show 的取值.



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>


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>


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 屬性.