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}

{/foreach}

OUTPUT:

id: 1000

id: 1001

id: 1002

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}

{/foreach}
{/foreach}

OUTPUT:

phone: 1

fax: 2

cell: 3

phone: 555-4444

fax: 555-3333

cell: 760-1234

foreach 循環有自己的變量名,使用該變量名可以訪問該循環. 使用方法爲{$smarty.foreach.foreachname.varname},其中 foreachname 即在 foreach 中指定的 name 屬性.