本文实例讲述了PHP模板引擎Smarty内建函数section,sectionelse用法。分享给大家供大家参考,具体如下:

section 是 Smarty 模板中除了 foreach 以外的另一种处理循环的方案,section 比 foreach 要灵活,就像是一个改进的 foreach 语句,除了拥有相同的循环特性外,还提供了很多附加选项,可以更好的控制循环的执行。在模板中,必须使用成对的 section 标记,有两个必须设置的属性 name 和 loop ,关于 section 的属性请看下表:

属性

类型

是否必须

缺省值

描述

name

string

Yes

n/a

该循环的名称

loop

[$variable_name]

Yes

n/a

决定循环次数的变量名称

start

integer

No

0

循环执行的初始位置. 如果该值为负数,开始位置从数组的尾部算起. 例如:如果数组中有7个元素,指定start为-2,那么指向当前数组的索引为5. 非法值(超过了循环数组的下限)将被自动调整为最接近的合法值.

step

integer

No

1

该值决定循环的步长. 例如指定step=2将只遍历下标为0、2、4等的元素. 如果step为负值,那么遍历数组的时候从后向前遍历.

max

integer

No

1

设定循环最大执行次数.

show

boolean

No

true

决定是否显示该循环.

我们通过一个实例,来演示 Smarty 中 {section} 和 {sectionelse} 的使用。

实例思路:从数据库中取出内容,赋给一个数组变量 $_html ,再给这个数组变量分配给模板,然后在模板中进行该数组的遍历。

数据库、主文件 index.php,Smarty 模板初始化文件 init.inc.php,可参考前面一篇《PHP模板引擎Smarty内建函数foreach,foreachelse用法分析》

/tpl/index.tpl

section,sectionelse

编号(iteration) 编号(rownum) 姓名 电子邮件 添加时间
对不起!暂时没有数据。
循环的次数为:

执行结果:

section 循环区域中可以使用的变量

变量名

描述

index

用于显示当前循环的索引,从 0 开始(如果设置了 start 属性,那么就由该值开始),每次加 1,(如果指定了 step 属性,那么由该值决定)

index_prev

用于显示上一个循环索引值,循环开始时,此值为 -1

index_next

用于显示下一个循环索引值,循环执行到最后一次时,此值仍然比当前索引值大 1(如果指定了 step 属性,那么由该值决定)

iteration

用于显示循环的次数

first

当前 section 循环在第一次执行时该变量的值为 true

last

当前 section 循环在最后一次执行时该变量的值为 true

rownum

用于显示循环的次数,该属性是 iteration 的别名,两者相同

loop

用于显示该循环上一次循环时的索引值,该值可以用于循环内部或循环结束后

show

是 section 的参数,show 取值为布尔值 true 和 false,如果设置为false,该循环将不显示。如果指定了 sectionelse 子句,该子句是否显示也取决于该值

total

用于显示循环执行的次数。不仅可以在循环中,也可以在执行结束后调用此属性

希望本文所述对大家基于smarty模板的PHP程序设计有所帮助。

php模板引擎循环start,PHP模板引擎Smarty内建函数section,sectionelse用法详解相关推荐

  1. PHP模板引擎Smarty内建函数section,sectionelse用法详解

    本文实例讲述了PHP模板引擎Smarty内建函数section,sectionelse用法.分享给大家供大家参考,具体如下: section 是 Smarty 模板中除了 foreach 以外的另一种 ...

  2. spring boot模板引擎thymleaf用法详解

    spring boot模板引擎thymleaf用法详解 Spring-boot支持FreeMarker.Thymeleaf.jsp.veocity 但是对freemarker和thymeleaf的支持 ...

  3. csh for循环_shell中的for循环用法详解_linux shell

    这篇文章主要介绍了shell中的for循环用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 for 命令: for i i ...

  4. c语言while将字符循环,C语言 while语句的用法详解

    在C语言中,共有三大常用的程序结构: 顺序结构:代码从前往后执行,没有任何"拐弯抹角": 选择结构:也叫分支结构,重点要掌握 if else.switch 以及条件运算符: 循环结 ...

  5. mysql 存储引擎作用_MySQL常用存储引擎功能与用法详解

    MySQL存储引擎主要有两大类: 1. 事务安全表:InnoDB.BDB. 2. 非事务安全表:MyISAM.MEMORY.MERGE.EXAMPLE.NDB Cluster.ARCHIVE.CSV. ...

  6. matlab中duration是什么意思,C++ duration(STL duration)模板用法详解

    duration (持续时间) 是定义为时间刻度数的时间间隔,可以指定一个时间刻度是多少秒.因此,时间刻度是衡量时间长短的基础.duration 模板的实例类型的对象定义了 duration.时间刻度 ...

  7. devc 无法编译循环语句_鸡生蛋还是蛋生鸡?详解第一个编译器是怎么来的~

    详解编译器自举原理 不知道你有没有想过,某种编程语言的第一个编译器是怎么来的呢?这不就是"鸡生蛋,蛋生鸡"的问题吗? 先说最后的结论:任何一种语言的第一个编译器肯定是使用其他语言写 ...

  8. jinja2模板用法详解

    目录 渲染模板 语法 过滤器 代码复用 特有变量及函数 渲染模板 用法:render_template(⽂件名,key=value) 模板文件一般默认路径为/templates下的文件,可通过key= ...

  9. c++ 中pair类模板的用法详解

    pair: 头文件:#include<utility> 类模板:template <class T1, class T2> struct pair 参数:T1是第一个值的数据类 ...

最新文章

  1. 菜鸟,大牛,教主的区别
  2. mybatis 大于小于转义_10 HTML5特性、转义字符和注释
  3. jieba是python中一个重要的标准函数库_python——Jieba库整理(基础知识+实例)
  4. colab出现input output error问题
  5. php百度编辑器精简版,开源web编辑器|百度编辑器ueditor下载1.4.3.4php版 下载_久友软件下载...
  6. 领域驱动设计,让程序员心中有码(二)
  7. zabbix3.0.4监控mysql主从同步
  8. oracle数据库建语句吗,Oracle建表语句是什么_数据库
  9. 合格证标签图片_合格证图片_合格证模板_合格证设计素材下载
  10. feifeicms 人物标签调用
  11. java Short详解
  12. 基于物联网的室内环境监测系统设计的背景
  13. 名片识别 java_基于JAVA的名片识别接口调用代码实例
  14. 芯片设计五部曲之一 | 声光魔法师——模拟IC
  15. java 带根号的开平方
  16. MySQL中联合索引问题,
  17. 计算机三级网络技术(重点)
  18. python下载安装过程——超详细!
  19. HTML5期末大作业:漫网页网站设计——爱影评在线电影(10页面)) 学生动漫网页设计模板下载 大学生HTML网页制作作品 简单漫画网页设计成品 dreamweaver学生网站模板
  20. ln火线零线_LN哪个代表零线哪个代表火线

热门文章

  1. 模块XX.dll已加载,但对DllRegisterServer的调用失败
  2. WCF的用户名+密码认证方式
  3. 51CTO下载专题有奖征集建议:您的期待,我们的方向!
  4. cisco路由器NAT配置
  5. 简单概述 .NET Framework 各版本区别
  6. WinDBg定位asp.net mvc项目异常崩溃源码位置
  7. RabbitMQ 入门:2. Exchange 和 Queue
  8. 【翻译】.NET 5 RC1发布
  9. .NET和.NET Core Web APi FormData多文件上传
  10. Istio1.5 Envoy 数据面 WASM 实践