線上服務(wù)咨詢
Article/文章
記錄成長(zhǎng)點(diǎn)滴 分享您我感悟
您當(dāng)前位置>首頁(yè) > 知識(shí) > 網(wǎng)站建設(shè)
使用Smarty循環(huán)標(biāo)簽
發(fā)表時(shí)間:2019-07-30 16:27:03
文章來(lái)源:沈陽(yáng)軟件開(kāi)發(fā)
標(biāo)簽:網(wǎng)站建設(shè) 小程序開(kāi)發(fā) 小程序制作 微信小程序開(kāi)發(fā) 公眾號(hào)開(kāi)發(fā) 微信公眾號(hào)開(kāi)發(fā) 網(wǎng)頁(yè)設(shè)計(jì) 網(wǎng)站優(yōu)化 網(wǎng)站排名 網(wǎng)站設(shè)計(jì) 微信小程序設(shè)計(jì) 小程序定制 微信小程序定制
瀏覽次數(shù):0
有兩種方法可以在php smarty模板引擎中循環(huán)數(shù)據(jù):foreach和section循環(huán)。我們來(lái)看看以下兩個(gè)循環(huán)。
(1)smarty foreach 循環(huán)
Foreach用于迭代關(guān)聯(lián)數(shù)組,如循環(huán)索引數(shù)組。與只能訪問(wèn)數(shù)字索引數(shù)組的部分不同,foreach語(yǔ)法比部分語(yǔ)法簡(jiǎn)單得多,但作為折衷方案,它只能用于單個(gè)數(shù)組。每個(gè)foreach標(biāo)記必須與close標(biāo)記/foreach成對(duì)出現(xiàn)。
foreach循環(huán)有四個(gè)屬性,from,item,name和key,其中from和item是必需的。
Foreach循環(huán)可以嵌套,嵌套的foreach的名稱應(yīng)該不同。
當(dāng)from屬性沒(méi)有值時(shí),將執(zhí)行{foreachelse}片段。
foreach循環(huán)也有自己的屬性變量,可以通過(guò){$ smarty.foreach.name.property}訪問(wèn),其中'name'是name屬性。例如:
$ smarty.foreach.name.index當(dāng)前數(shù)組索引,從零開(kāi)始。
$ smarty.foreach.name.iteration與索引不同,當(dāng)前循環(huán)數(shù)從1開(kāi)始,每次遞增1。
當(dāng)前{foreach}循環(huán)處于其初始位置時(shí),$ smarty.foreach.name.first為T(mén)RUE。
當(dāng)前{foreach}循環(huán)處于最終位置時(shí),$ smarty.foreach.name.last的值為T(mén)RUE。
$ smarty.foreach.name.show show是{foreach}的參數(shù)。 show是一個(gè)布爾值。如果值為FALSE,則不會(huì)顯示{foreach}。如果有相應(yīng)的{foreachelse},則會(huì)顯示。
$ smarty.foreach.name.total total包括{foreach}將在{foreach}或更晚的循環(huán)次數(shù)。
注意:name屬性僅在您需要訪問(wèn){foreach}屬性時(shí)有效,與{section}不同。訪問(wèn)未定義名稱的{foreach}屬性不會(huì)引發(fā)錯(cuò)誤,但會(huì)導(dǎo)致不可預(yù)測(cè)的結(jié)果。
例如:
{foreach from=$ newsList item=news key=newsId name=news}
Php smarty foreach循環(huán)示例
{/foreach}的(2)smarty section 循環(huán)
{section name='sn'love='$ BusinesList4'}
{$ smarty.section.sn.index + 1} {$ BusinesList4 [SN] 0.2} {/部分}可以看出索引和關(guān)聯(lián)數(shù)組都非常方便使用。以下描述了該部分中每個(gè)屬性的描述:
1、smarty section中的屬性
名稱:(必需)是節(jié)循環(huán)的名稱,僅表示循環(huán)的唯一名稱沒(méi)有特殊含義,前面沒(méi)有$符號(hào);
循環(huán):(必需)是php聲明中變量的名稱,用于指示要循環(huán)的數(shù)組(即循環(huán)數(shù)組名稱)需要使用$;
Start:(可選)循環(huán)執(zhí)行的初始位置。如果值為負(fù),則從數(shù)組末尾開(kāi)始計(jì)算起始位置。例如:如果數(shù)組中有7個(gè)元素且start指定為-2,則當(dāng)前數(shù)組的索引為5.非法值(超出循環(huán)數(shù)組的下限)將自動(dòng)調(diào)整為最接近的合法值。
步驟:(可選)是其他語(yǔ)言的一個(gè)步驟,如果是負(fù)數(shù),則反向循環(huán);
最大:(可選)循環(huán)的最大下標(biāo)。如果是1,它只會(huì)循環(huán)一次。如果它是2,它將循環(huán)兩次;
顯示:(可選)默認(rèn)為true。如果設(shè)置了{(lán)sectionelse}。表示如果數(shù)組沒(méi)有內(nèi)容,則顯示此部分;如果show為false,則顯示此信息。如果未設(shè)置{sectionelse},則不會(huì)輸出數(shù)組。
2、smarty中section中的變量
索引:用于顯示當(dāng)前循環(huán)的索引,從0開(kāi)始(如果指定了start屬性,則從該值開(kāi)始),每次加1(如果指定了step屬性,則由該值確定)。如果沒(méi)有step和start屬性,它就像迭代一樣,但是從0開(kāi)始。
Index_prev:用于顯示最后一個(gè)循環(huán)索引值。循環(huán)開(kāi)始時(shí),該值為-1。
Index_next:用于顯示下一個(gè)循環(huán)索引值。當(dāng)循環(huán)執(zhí)行到最后一次時(shí),該值仍然大于當(dāng)前索引值(如果指定了step,則取決于此值)。
迭代:用于顯示循環(huán)次數(shù)。迭代與index屬性不同,index屬性受start,step和max屬性的影響,值始終從1開(kāi)始(索引從0開(kāi)始)。 rownum是迭代的別名,它是等價(jià)的。
第一個(gè):如果第一次執(zhí)行當(dāng)前循環(huán),則first設(shè)置為true。
Last:如果當(dāng)前循環(huán)執(zhí)行到最后一次,則last設(shè)置為true。
Rownum:用于顯示循環(huán)次數(shù)。此屬性是迭代的別名,它是等效的。
循環(huán):用于顯示循環(huán)最后一個(gè)循環(huán)的索引值。該值可以在循環(huán)內(nèi)部或循環(huán)結(jié)束后使用。
顯示:是節(jié)的參數(shù)。 show的值是布爾值true或false。如果設(shè)置為false,則不會(huì)顯示循環(huán)。如果指定了sectionelse子句,則該語(yǔ)句也將取決于值。
總計(jì):用于顯示循環(huán)執(zhí)行的總數(shù)。可以在循環(huán)中或執(zhí)行后調(diào)用此屬性。
簡(jiǎn)單的例子:
{section name=loop loop=6} id: {$ smarty.section.loop.index + 1} {/section}
Smarty部分嵌套循環(huán)示例:
{section name=“sn”loop=“$ dis_cType”} {$ BusinesList=$ {$ dis_cType [sn] .2}} {section name=sn2 loop=$ BusinesList}
{$ smarty.section.sn2.index + 1} {$ BusinesList [SN2] 0.2} {/部分} {/部分} 標(biāo)簽:& nbsp& nbsp沈陽(yáng)網(wǎng)站建設(shè)& nbspMarketing type 網(wǎng)站建設(shè)& nbsphtml5 development網(wǎng)站建設(shè),小程序開(kāi)發(fā),小程序制作,微信小程序開(kāi)發(fā),公眾號(hào)開(kāi)發(fā),微信公眾號(hào)開(kāi)發(fā),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站優(yōu)化,網(wǎng)站排名,網(wǎng)站設(shè)計(jì),微信小程序設(shè)計(jì),小程序定制,微信小程序定制