龍巖易富通網(wǎng)絡(luò)科技有限公司

龍巖小程序開發(fā),龍巖分銷系統(tǒng)

smarty中section的使用

2015.09.10 | 548閱讀 | 0條評論 | 未命名

在smarty的使用過程中,有很多時候需要將一個數(shù)組輸出到模板中來處理,以下將演示如何將一個索引(index)數(shù)組和關(guān)聯(lián)(assocaite)數(shù)組在頁面中展現(xiàn)出來。 本文中假設(shè)有如下一個索引數(shù)組 1、索引數(shù)組

$people?=?array('tony','sweety','abc','four'); $smarty->assign('people',$people);
在模板中顯示:
{section?name=n?loop=$people} name:{$people[n]}<br/> {/section}
這樣在模板中就可以顯示出這個數(shù)組的內(nèi)容了。結(jié)果如下:
1?name:tony 2?name:sweety 3?name:abc 4?name:four
2、關(guān)聯(lián)數(shù)組
? ? ?$arr?=?array( array('id'=>1,'title'=>'title1'), array('id'=>2,'title'=>'title2'), array('id'=>3,'title'=>'title3') ); $smarty->assign('news',$arr);
在模板中顯示過程如下
? {section?name=sn?loop=$news} {if?$smarty.section.sn.first} <table> <th>id</th> <th>title</th> {/if} <tr> <td>{$news[sn].id}</td> <td>{$news[sn].title}</td> </tr> {if?$smarty.section.sn.last} </table> {/if} {sectionelse} there?is?no?news. {/section}
顯示結(jié)果如下(是一個表格的樣子,以下顯示的沒有加樣式):
1?id?title 2?1?title1 3?2?title2 4?3?title3
可以看出,無論是索引還是關(guān)聯(lián)數(shù)組用起來都是很方便。下面介紹下section中各個屬性的說明: 1、section中的屬性 name:(必選) 是section循環(huán)的名稱只是標(biāo)示循環(huán)唯一的名字沒有特別意義,前面沒有$符號; loop: (必選)是在php聲明中的變量名稱,用來標(biāo)示是循環(huán)哪一個數(shù)組(即要循環(huán)數(shù)組名)需要使用$; start: (可選)循環(huán)執(zhí)行的初始位置. 如果該值為負(fù)數(shù),開始位置從數(shù)組的尾部算起. 例如:如果數(shù)組中有7個元素,指定start為-2,那么指向當(dāng)前數(shù)組的索引為5. 非法值(超過了循環(huán)數(shù)組的下限)將被自動調(diào)整為最接近的合法值. step: (可選)如其它語言的循環(huán),是一個步長,如果為負(fù)數(shù),則倒序循環(huán); max:(可選)循環(huán)的最大下標(biāo),如果是1則只循環(huán)1次,如果為2則循環(huán)2次; show:(可選)默認(rèn)為true即顯示。如果設(shè)置了{(lán)sectionelse}。表示如果數(shù)組沒有內(nèi)容的時候顯示這部分的內(nèi)容;如果show為false則顯示這部分。如果沒有設(shè)置{sectionelse}則不輸出該數(shù)組。 2、smarty中section中的變量 index:用于顯示當(dāng)前循環(huán)的索引,從0開始(如果指定了start屬性,那么由該值開始),每次加1(如果指定了step屬性,那么由該值決定).如果沒有指定step和start屬性,此值的作用和iteration類似,只不過從0開始而已. index_prev:用于顯示上一個循環(huán)索引值. 循環(huán)開始時,此值為-1. index_next:用于顯示下一個循環(huán)索引值. 循環(huán)執(zhí)行到最后一次時,此值仍然比當(dāng)前索引值大1(如果指定了step,取決于此值). iteration:用于顯示循環(huán)的次數(shù).iteration 不像index屬性受start、step和max屬性的影響,該值總是從1開始(index是從0開始的).rownum 是iteration的別名,兩者等同. first:如果當(dāng)前循環(huán)第一次執(zhí)行,first 被設(shè)置為true. last:如果當(dāng)前循環(huán)執(zhí)行到最后一次,last 被設(shè)置為true. rownum:用于顯示循環(huán)的次數(shù). 該屬性是iteration的別名,兩者等同. loop:用于顯示該循環(huán)上一次循環(huán)時的索引值. 該值可以用于循環(huán)內(nèi)部或循環(huán)結(jié)束后. show:是 section 的參數(shù).?show?取值為布爾值 true 或 false. 如果設(shè)置為 false,該循環(huán)將不顯示. 如果指定了 sectionelse 子句,該字句是否顯示也取決于該值. total:用于顯示循環(huán)執(zhí)行總的次數(shù). 可以在循環(huán)中或執(zhí)行結(jié)束后調(diào)用此屬性.

贊 (

發(fā)表評論