smarty取循环次数或赋值用法介绍

常用的循环,如下

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

 

可以看出,无论是索引还是关联数组用起来都是很方便。下面介绍下section中各个属性的说明:

1、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:用于显示循环执行总的次数. 可以在循环中或执行结束后调用此属性.

计算循环次数与赋值

 代码如下 复制代码

{assign var="loop" value="5"}{*5为给定循环次数,可以用变量代替*}
  
  {section name="loop" loop=$loop}
  
  {$smarty.section.loop.index} {*可以这样取得下标,即第几次循环*}
  
{/section}

举例:

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

 
可以看出,无论是索引还是关联数组用起来都是很方便。下面介绍下section中各个属性的说明:

1、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="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}

 

{foreach from=$dis_cType item=sn key=k}

{/foreach}

模似 for循环

 代码如下 复制代码

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

时间: 2024-10-03 11:34:02

smarty取循环次数或赋值用法介绍的相关文章

ASP.NET服务器端控件RadioButtonList,DropDownList,CheckBoxList的取值、赋值用法_实用技巧

这三个控件都有一个Items集合,可以用 RepeatLayout 和 RepeatDirection 属性来控制列表的呈现形式.如果 RepeatLayout 的值为 Table,那么将在表中呈现列表.如果设置成 Flow,那么将在没有任何表结构的情况下呈现列表.默认情况下,RepeatDirection 的值为 Vertical.将此属性设置成 Horizontal 将会使列表水平呈现. RadioButtonList:控件提供已选中一个选项的单项选择列表(数据源单选).与其他列表控件相似,

PHP模板引擎Smarty自定义变量调解器用法_php实例

本文实例讲述了PHP模板引擎Smarty自定义变量调解器用法.分享给大家供大家参考,具体如下: 在 PHP 中,有很多处理文本的函数,您可以把要处理的文本通过函数处理之后,再调用 Smarty 模板引擎中的 assign() 赋值给变量,分配到模板中进行显示. Smarty 中的变量调解器和 PHP 中处理文本的函数相似,不过语法不相同,在 Smarty 中,是通过 "|" 后面直接跟调解器函数名,如果有参数,得加在 ":" 后面,多个参数的话,累加即可. 格式:{

smarty模板引擎之内建函数用法

 这篇文章主要介绍了smarty模板引擎之内建函数用法,实例分析了smarty中foreach函数.if...else....if...elseif...elseif...else...等内建函数的使用方法,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了smarty内建函数的使用方法.分享给大家供大家参考.具体如下: in-build(内建),在smarty模板中,提供了很多内建的函数库,具体使用可以参考smarty中文手册chm版本. 1.foreach函数 操作数组如下:

Python中的with...as用法介绍

  这篇文章主要介绍了Python中的with...as用法介绍,本文直接给出用法实例,需要的朋友可以参考下 这个语法是用来代替传统的try...finally语法的. 代码如下: with EXPRESSION [ as VARIABLE] WITH-BLOCK 基本思想是with所求值的对象必须有一个__enter__()方法,一个__exit__()方法. 紧跟with后面的语句被求值后,返回对象的__enter__()方法被调用,这个方法的返回值将被赋值给as后面的变量.当with后面的

JavaScript日期类型的一些用法介绍

 这篇文章主要介绍了JavaScript日期类型的一些用法介绍,本文讲解了获取某个月份的天数.获取时区.计算运行时间.删除cookie等用法,需要的朋友可以参考下     获取某个月份的天数 相信大家读小学的时候就知道一年十二个月各有多少天了,这里面有个特殊的存在--2月.闰年的2月有29天,非闰年的2月只有28天.估计不少人跟我一样,已经不记得闰年的规则了,这时候,下面的这个方法就派上用场了. 代码如下: var date = new Date(2013, 2, 0); date.getDat

jQuery 取值、赋值的基本方法整理

 这篇文章主要介绍了jQuery 取值.赋值的基本方法,需要的朋友可以参考下 /*获得TEXT.AREATEXT的值*/  var textval = $("#text_id").attr("value");  //或者  var textval = $("#text_id").val();  /*获取单选按钮的值*/  var valradio = $("input[@type=radio][@checked]").val(

smarty内置函数foreach用法实例_php实例

本文实例讲述了smarty内置函数foreach用法.分享给大家供大家参考.具体如下: 输出文件:index.php 复制代码 代码如下: <?php require_once('libs/Smarty.class.php'); $smarty = new Smarty(); $smarty->setTemplateDir($_SERVER['DOCUMENT_ROOT']."/php/templates/"); $smarty->setCompileDir($_SE

json格式解析和libjson的用法介绍(关于cjson的使用方法)_C 语言

在阅读本文之前,请先阅读下<Rss Reader实例开发之系统设计>一文. Rss Reader实例开发中,进行网络数据交换时主要使用到了两种数据格式:JSON与XML.本文主要介绍JSON格式的简单概念及JSON在Rss Reader中的应用,XML格式的使用将在下一篇文章做介绍. JSON简介: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,可以把JSON的结构理解成无序的.可嵌套的key-value键值对集合,这些key-value键值对是

Easyui的组合框的取值与赋值_jquery

近期由于工作需要,用户点击下拉框可以试下多选的效果,效果大致如下图: 实现的代码如下: <select id="iweekDay" class="col-sm-4 form-control easyui-combobox " name="state" data-options="multiple:true,multiline:true" style="width:350px;height:35px"