{section} 專為**索引陣列**設計(不支援關聯陣列),功能與 {foreach} 重疊但提供更精細的迴圈控制(步長、倒序、起始索引)。現代開發多推薦 {foreach},但 {section} 在特定場景仍具優勢。
{section name=foo loop=$name step=-1}
{$name[foo]}
{/section}
| 參數 | 必填 | 說明 |
|---|---|---|
| name | 是 | 迴圈變數名(模板中用 {$smarty.section.foo.index} 等存取屬性) |
| loop | 是 | 要遍歷的索引陣列變數 |
| start | 否 | 起始索引(預設 0) |
| step | 否 | 步長:2 表示取 0,2,4...;-1 表示倒序遍歷 |
| max | 否 | 最大迴圈次數 |
| show | 否 | 布林值,條件不滿足時是否顯示 {sectionelse} 區塊 |
{$smarty.section.foo.index}:當前索引(0-based){$smarty.section.foo.iteration}:當前迭代次數(1-based){$smarty.section.foo.first}:是否首項{$smarty.section.foo.last}:是否尾項{$smarty.section.foo.total}:總迴圈次數| 場景 | 推薦 | 理由 |
|---|---|---|
| 關聯陣列遍歷 | foreach | section 不支援 |
| 需精確控制步長/倒序/起始索引 | section | 原生支援 step/start/max |
| 簡單索引陣列遍歷 | foreach | 語法更簡潔、效能略優 |
| 需存取迴圈元數據 | section | 屬性更豐富 |