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