• <kbd id="qyk40"></kbd>
  • <strike id="qyk40"></strike><samp id="qyk40"><pre id="qyk40"></pre></samp>

    php smarty模板引擎里面有兩種數據循環的方式,分別是 foreach 和 section 循環。下面一一對這兩種循環方式做一下介紹。

    (1)smarty foreach 循環

    foreach用于像循環訪問一個數字索引數組一樣循環訪問一個關聯數組,與僅能訪問數字索引數組的section不同,foreach的語法比section的語法簡單得多,但是作為一個折衷方案也僅能用于單個數組。每個foreach標記必須與關閉標記/foreach成對出現。

    foreach循環有四個屬性,from,item,name,key,其中from和item是必須的。

    foreach循環可以嵌套,嵌套的foreach的名稱應當互不相同。

    在from屬性沒有值時,將執行{foreachelse}片段。

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

    $smarty.foreach.name.index 當前數組索引,從零開始。

    $smarty.foreach.name.iteration 當前循環次數,與index不同,從1開始,每次循環增長1。

    $smarty.foreach.name.first 在當前{foreach}循環處于初始位置時值為TRUE。

    $smarty.foreach.name.last 在當前{foreach}循環處于最終位置是值為TRUE。

    $smarty.foreach.name.show show是{foreach}的參數. show是一個布爾值。如果值為FALSE,{foreach}將不被顯示。如果有對應的{foreachelse},將被顯示。

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

    注意:name屬性僅在需要訪問{foreach}屬性時有效,與{section}不同。訪問未定義name的{foreach}屬性不會拋出一個錯誤,但將導致不可預知的結果。

    示例:

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

    (2)smarty section 循環

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

    可以看出,無論是索引還是關聯數組用起來都是很方便。下面介紹下section中各個屬性的說明:

    1、smarty section中的屬性

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

    loop: (必選)是在php聲明中的變量名稱,用來標示是循環哪一個數組(即要循環數組名)需要使用$;

    start: (可選)循環執行的初始位置. 如果該值為負數,開始位置從數組的尾部算起. 例如:如果數組中有7個元素,指定start為-2,那么指向當前數組的索引為5. 非法值(超過了循環數組的下限)將被自動調整為最接近的合法值.

    step: (可選)如其它語言的循環,是一個步長,如果為負數,則倒序循環;

    max:(可選)循環的最大下標,如果是1則只循環1次,如果為2則循環2次;

    show:(可選)默認為true即顯示。如果設置了{sectionelse}。表示如果數組沒有內容的時候顯示這部分的內容;如果show為false則顯示這部分。如果沒有設置{sectionelse}則不輸出該數組。

    2、smarty中section中的變量

    index:用于顯示當前循環的索引,從0開始(如果指定了start屬性,那么由該值開始),每次加1(如果指定了step屬性,那么由該值決定).如果沒有指定step和start屬性,此值的作用和iteration類似,只不過從0開始而已.

    index_prev:用于顯示上一個循環索引值. 循環開始時,此值為-1.

    index_next:用于顯示下一個循環索引值. 循環執行到最后一次時,此值仍然比當前索引值大1(如果指定了step,取決于此值).

    iteration:用于顯示循環的次數.iteration 不像index屬性受start、step和max屬性的影響,該值總是從1開始(index是從0開始的).rownum 是iteration的別名,兩者等同.

    first:如果當前循環第一次執行,first 被設置為true.

    last:如果當前循環執行到最后一次,last 被設置為true.

    rownum:用于顯示循環的次數. 該屬性是iteration的別名,兩者等同.

    loop:用于顯示該循環上一次循環時的索引值. 該值可以用于循環內部或循環結束后.

    show:是 section 的參數. show 取值為布爾值 true 或 false. 如果設置為 false,該循環將不顯示. 如果指定了 sectionelse 子句,該字句是否顯示也取決于該值.

    total:用于顯示循環執行總的次數. 可以在循環中或執行結束后調用此屬性.

    簡單示例:

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

    smarty section 嵌套循環示例:

    {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}

    ?

    穩定

    產品高可用性高并發

    貼心

    項目群及時溝通

    專業

    產品經理1v1支持

    快速

    MVP模式小步快跑

    承諾

    我們選擇聲譽

    堅持

    10年專注高端品質開發
    • 返回頂部
    国产精品综合一区二区三区| 亚洲日韩精品无码一区二区三区 | 中国精品18videosex性中国| 无码国产精品一区二区免费式影视| 亚洲AV无码AV日韩AV网站| 亚洲日韩国产精品乱| 亚洲七七久久精品中文国产| 亚洲精品字幕在线观看| 国产成人亚洲精品青草天美| 99精品久久精品| 亚洲国产精品人久久| 国产精品大bbwbbwbbw| 国产三级精品三级在线专区| 国产精品无码a∨精品| 亚洲中文字幕一区精品自拍| …久久精品99久久香蕉国产| 韩国精品一区视频在线播放| 国拍在线精品视频免费观看 | 亚洲国产精品成人午夜在线观看| 91久久精品午夜一区二区| 精品国产一区二区三区香蕉事 | 亚洲日韩欧洲无码av夜夜摸| 亚洲级αV无码毛片久久精品| 精品国产一区二区三区麻豆| 亚洲日韩国产精品乱| 亚洲日韩一页精品发布| AAA级久久久精品无码片| 无码国内精品久久人妻麻豆按摩| 无码国产精品一区二区免费vr | 日韩高清在线观看| 亚洲av永久无码精品漫画| 国产成人精品美女在线| 女人香蕉久久**毛片精品| 中文字幕一区精品| 国产精品无码专区| 国产看午夜精品理论片| 国产乱人伦偷精品视频免下载| 国产精品第一页第一页| 久久se精品动漫一区二区三区| 精品视频一区在线观看| 人妻少妇精品无码专区二区|