首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

ThinkPHP 模板 volist 循環判斷最後一條記錄的技巧

     編輯:PHP 綜合知識

問題背景

Smarty 中用 $smarty.foreach.name.last 判斷最後一項,ThinkPHP volist 無內置屬性。但 volist 內部維護計數變量 $i(默認名),可結合 count() 實現。

核心代碼

<volist name='lists' id='list'>
    <li <if condition="$i eq count($lists)">class="last"</if>>
        <a href="https://example.com/">{$list.title}</a>
    </li>
</volist>

關鍵點解析

  • $i:volist 內置計數器,從 1 開始,無需聲明直接可用
  • count($lists):獲取數組總長度
  • eq:模板條件標籤中的等於運算符
  • 當 $i == 總數 時,標記為最後一項

進階變體:自定義計數器名稱

若需避免變量衝突,可顯式指定:

<volist name='lists' id='list' key='k'>
    <li <if condition="$k eq count($lists)">class="last"</if>>...</li>
</volist>

key 屬性自定義計數器變量名(默認 $i)。

應用場景示例

  • 導航菜單最後一項去掉分隔符 |
  • 列表最後一行去掉底部邊框 border-bottom
  • JSON 輸出最後一項不加逗號

注意事項

  1. $i / $k 僅在 volist 作用域內有效
  2. name 必須是數組或實現 Countable 的對象
  3. 嵌套循環時,內層 $i 會覆蓋外層,建議用 key 區分
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved