模板标签 {loop} 和 {foreach} 有什么区别?怎么写带序号的循环?
看模板里有时写 loop 有时写 foreach,还有 {$i} 这种序号,规则是什么?
回答(1)
已采纳最佳答案-
2026-10-25 回答 最佳答案
两者完全等价,只是写法不同,团队里挑一个统一即可。
{loop $list as $item}…{/loop} {foreach $list as $item}…{/foreach} <!-- 带序号($i 从 0 开始)--> {loop $list as $i => $item} <span>{$i}</span> {$item.title} {/loop}几条必须记住的规矩:
{loop}/{foreach}自带结束,不要再写{/if}——多写一个会编译出错;- 循环自带空值保护,列表为空整段不输出;
- 取数组值用点号:
{$a.b.0.c}也支持; {if}不保护未定义变量,判断前用{if !empty($x)};- 输出标签不支持算术,过滤器参数只能写死的数字或文字。
常用过滤器:
|limit=20截断、|date=Y-m-d时间、|thumb=400,260缩略图、|raw原样输出 HTML(富文本必须加)。
写回答
该问题已解决,不再接受新的采纳。