91亚洲精华国内精华精华液_国产高清在线精品一区不卡_精品特级一级毛片免费观看_欧美日韩中文制服有码_亚洲精品无码你懂的网站369

php smarty模板引擎里面有兩種數(shù)據(jù)循環(huán)的方式,分別是 foreach 和 section 循環(huán)。下面一一對(duì)這兩種循環(huán)方式做一下介紹。

(1)smarty foreach 循環(huán)

foreach用于像循環(huán)訪問一個(gè)數(shù)字索引數(shù)組一樣循環(huán)訪問一個(gè)關(guān)聯(lián)數(shù)組,與僅能訪問數(shù)字索引數(shù)組的section不同,foreach的語法比section的語法簡(jiǎn)單得多,但是作為一個(gè)折衷方案也僅能用于單個(gè)數(shù)組。每個(gè)foreach標(biāo)記必須與關(guān)閉標(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屬性沒有值時(shí),將執(zhí)行{foreachelse}片段。

foreach循環(huán)也有自身屬性的變量,可以通過{$smarty.foreach.name.property}訪問,其中"name"是name屬性。例如:

$smarty.foreach.name.index 當(dāng)前數(shù)組索引,從零開始。

$smarty.foreach.name.iteration 當(dāng)前循環(huán)次數(shù),與index不同,從1開始,每次循環(huán)增長(zhǎng)1。

$smarty.foreach.name.first 在當(dāng)前{foreach}循環(huán)處于初始位置時(shí)值為TRUE。

$smarty.foreach.name.last 在當(dāng)前{foreach}循環(huán)處于最終位置是值為TRUE。

$smarty.foreach.name.show show是{foreach}的參數(shù). show是一個(gè)布爾值。如果值為FALSE,{foreach}將不被顯示。如果有對(duì)應(yīng)的{foreachelse},將被顯示。

$smarty.foreach.name.total total包括{foreach}將循環(huán)的次數(shù),既可以在{foreach}中使用,也可以在之后使用。

注意:name屬性僅在需要訪問{foreach}屬性時(shí)有效,與{section}不同。訪問未定義name的{foreach}屬性不會(huì)拋出一個(gè)錯(cuò)誤,但將導(dǎo)致不可預(yù)知的結(jié)果。

示例:

{foreach from=$newsList item=news key=newsId name=news}
<p{if $smarty.foreach.news.first} class="one"{/if}>php smarty foreach 循環(huán)示例</p>
{/foreach}

(2)smarty section 循環(huán)

{section name="sn" loop="$BusinesList4"}
<li><a href="#"><span>{$smarty.section.sn.index+1}</span>{$BusinesList4[sn].2}</a></li>
{/section}

可以看出,無論是索引還是關(guān)聯(lián)數(shù)組用起來都是很方便。下面介紹下section中各個(gè)屬性的說明:

1、smarty section中的屬性

name:(必選) 是section循環(huán)的名稱只是標(biāo)示循環(huán)唯一的名字沒有特別意義,前面沒有$符號(hào);

loop: (必選)是在php聲明中的變量名稱,用來標(biāo)示是循環(huán)哪一個(gè)數(shù)組(即要循環(huán)數(shù)組名)需要使用$;

start: (可選)循環(huán)執(zhí)行的初始位置. 如果該值為負(fù)數(shù),開始位置從數(shù)組的尾部算起. 例如:如果數(shù)組中有7個(gè)元素,指定start為-2,那么指向當(dāng)前數(shù)組的索引為5. 非法值(超過了循環(huán)數(shù)組的下限)將被自動(dòng)調(diào)整為最接近的合法值.

step: (可選)如其它語言的循環(huán),是一個(gè)步長(zhǎng),如果為負(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)容的時(shí)候顯示這部分的內(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:用于顯示上一個(gè)循環(huán)索引值. 循環(huán)開始時(shí),此值為-1.

index_next:用于顯示下一個(gè)循環(huán)索引值. 循環(huán)執(zhí)行到最后一次時(shí),此值仍然比當(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)時(shí)的索引值. 該值可以用于循環(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)用此屬性.

簡(jiǎn)單示例:

{section name=loop loop=6}
id: {$smarty.section.loop.index+1}
{/section}

smarty section 嵌套循環(huán)示例:

{section name=”sn” loop=”$dis_cType”}
{$BusinesList=${$dis_cType[sn].2}}
{section name=sn2 loop=$BusinesList}
<li><a href=”#”><span>{$smarty.section.sn2.index+1}</span>{$BusinesList[sn2].2}</a></li>
{/section}
{/section}

?

穩(wěn)定

產(chǎn)品高可用性高并發(fā)

貼心

項(xiàng)目群及時(shí)溝通

專業(yè)

產(chǎn)品經(jīng)理1v1支持

快速

MVP模式小步快跑

承諾

我們選擇聲譽(yù)

堅(jiān)持

10年專注高端品質(zhì)開發(fā)
  • 返回頂部