smarty迴圈操作_PHP教程

來源:互聯網
上載者:User
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}
php smarty foreach 迴圈樣本


{/foreach}

(2)smarty section 迴圈

{section name="sn" loop="$BusinesList4"}

  • {$smarty.section.sn.index+1}{$BusinesList4[sn].2}

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

  • {$smarty.section.sn2.index+1}{$BusinesList[sn2].2}

  • {/section}
    {/section}

    您可能感興趣的文章

    • smarty 模板中迴圈表格補充不全的td
    • smarty模板中for迴圈的擴充外掛程式
    • smarty迴圈表格並補充表格td不足的情況
    • smarty變數操作符總結
    • Smarty模板變數操作符總結
    • smarty模板中給資訊添加最新標籤
    • smarty模板中如何產生隨機數
    • smarty邏輯運算子號總結

    http://www.bkjia.com/PHPjc/764145.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/764145.htmlTechArticlephp smarty模板引擎裡面有兩種資料迴圈的方式,分別是 foreach 和 section 迴圈。下面一一對這兩種迴圈方式做一下介紹。 (1)smarty foreach 迴圈...

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.