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

本文实例讲述了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)姓名电子邮件添加时间
对不起!暂时没有数据。
循环的次数为:

执行结果:

5b75e4a567431bf3ee38c2248bf46f2a.gif

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程序设计有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/281647.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenHarmony操作系统与龙芯2K1000LA芯片完成适配,龙架构平台获得开源鸿蒙认证

近日,龙芯中科与软通动力控股公司鸿湖万联共同完成OpenHarmony操作系统与龙芯2K1000LA处理器的适配,“乘风1000”开发板(搭载龙芯2K1000LA)荣获OpenHarmony生态产品兼容性证书。至此,万物互联的OpenHarmony生态体系再次…

struts2开发action 的三种方法以及通配符、路径匹配原则、常量

struts2开发action 的三种方法 1、继承ActionSupport public class UserAction extends ActionSupport {// Action中业务处理方法public String login() {System.out.println("UserAction.login()"); // return "success";return SUCCESS;} } 2、实现…

闭包--闭包作用之保护(一)

闭包作用:保护 形成私有作用域,保护里面的私有变量不受外界干扰例如多人协作开发&#xff1a;A的代码有fn(),B的代码有fn(),但是他们不相互影响 // A的代码<script>(function() {function fn1() {console.log("aa")}window.fn1 fn1;})()// window.fn1() //11&…

left join 和 inner join

2019独角兽企业重金招聘Python工程师标准>>> left join 和 inner join 首先 MySQL 中 inner join 的效率确实要高于 left join。所以没必要使用 left join 转弯成 inner join 的效果。这样不但效率降低&#xff0c;可读性也会降低。 Number1 select from t1 left j…

oracle 数据库中拆分,oracle数据库字符串拆分

第一种 直接返回切分的字符串create or replace function Get_StrArrayLength(av_str varchar2,--要分割的字符串av_split varchar2 --分隔符号)return numberislv_str varchar2(1000);lv_length number;beginlv_str:ltrim(rtrim(av_str));lv_length:0;while instr(lv_str,av_s…

Vue3+.NET6,轻松开发管理后台!(可复用)

在GitHub是没找到简单好用的Vue3.NET6管理后台项目&#xff0c;有收藏的请评论区分享。这里分享一套Vue3 Axios TS Vite Element Plus .NET 6 WebAPI JWT SqlSugar的通用管理后台&#xff0c;前后端分离架构&#xff0c;各种最新框架组件&#xff0c;实现了管理后台几乎…

iOS网络请求安全认证(JWT,RSA)

在网络世界中&#xff0c;安全是一个很重要的问题&#xff0c;以往的HTTP请求已经不能承担这个安全任务&#xff0c;抓包工具一抓&#xff0c;你的所有网络请求全都曝光。当然&#xff0c;你可能会采用加密算法来加密数据&#xff0c;但是这仍然不够。 在移动端和服务器的通信过…

微信小程序黑客马拉松即将开始,来做最酷的 Mini Program Creators!

微信小程序黑客马拉松正式启动 近日&#xff0c;小程序斩获一项世界级殊荣——作为一项全新的技术和应用创新&#xff0c;小程序首次获选世界互联网领先科技成果。目前小程序应用数量已超过 100 万&#xff0c;覆盖了 200 多个细分行业&#xff0c;日活用户达到 2 亿。 微信小程…

oracle 文件写 n r,[oracle]log_archive_dest_n与DB_RECOVERY_FILE_DEST

DB_RECOVERY_FILE_DEST参数是默认的flashrecovery area的路径&#xff0c;里面存放有归档日志、闪回日志以及rman的备份文件等文件。LOG_ARCHIVE_DEST_n参数是存放归档日志的路径&#xff0c;n表示1~10的一个整数&#xff0c;由于归档日志在recovery的时候担当了重要的角色&…

记一次 .NET 某娱乐聊天流平台 CPU 爆高分析

一&#xff1a;背景 1.讲故事前段时间有位朋友加微信&#xff0c;说他的程序直接 CPU100%&#xff0c;每次只能手工介入重启&#xff0c;让我帮忙看下到底怎么回事&#xff0c;哈哈&#xff0c;这种CPU打满的事故&#xff0c;程序员压力会非常大, 我让朋友在 CPU 高的时候抓 2 …

linux下mariadb大小写敏感

2019独角兽企业重金招聘Python工程师标准>>> Linux下安装好mariadb后&#xff0c;在使用时会发现mariadb对大小写敏感&#xff0c;这对开发带来一定的不利&#xff0c;这时只要在配置文件中配置一下&#xff0c;取消大小写敏感即可&#xff1a; sudo vi /etc/MySQL/…

评论列表显示及排序,个人中心显示

1.显示所有评论{% for foo in ques.comments %} 2.所有评论排序uquestion db.relationship(Question, backrefdb.backref(comments, order_bycreat_time.desc)) 3.显示评论条数{{ ques.comments|length }} 1题代码如下&#xff1a; <h3>评论区:({{ ques.comments|length…

软件工程现行国标汇集

GB/T 8566-2007 《信息技术 软件生存周期过程》GB/T 8567-2006 《计算机软件文档编制规范》 GB/T 9385-2008《计算机软件需求规格说明规范》GB/T 9386-2008 《计算机软件测试文档编制规范》 GB/T 11457-2006《信息技术 软件工程术语》GB/T 14394-2008《计算机软件可靠性和可维护…

oracle listagg方法,Oracle实现字符串拼接和分离功能的方法(LISTAGG函数),oraclelistagg...

Oracle实现字符串拼接和分离功能的方法(LISTAGG函数)&#xff0c;oraclelistagg字符串拼接(String Aggregation Techniques)是数据处理时经常需要用到一个技术&#xff0c;比如需要按时间顺序拼装一个快递的运输记录&#xff0c;或者将流程中各个环节的处理人拼装为一个字符串。…

他俩都曾是技术大牛,创业这些年来有怎样的苦与乐?

这是头哥侃码的第263篇原创国庆假期回来&#xff0c;「头哥唠 B 唠」的直播仍在继续。这次我邀请了我工作上的老板和朋友&#xff0c;一起聊了聊关于 “技术创业路上的苦与乐”。熟悉他们两位的都知道&#xff0c;可以说是技术出身&#xff0c;然后创业当老板的代表。大家都知道…

maven,gradle本地缓存位置

gradle: 配置系统环境变量GRADLE_USER_HOME即可&#xff0c;值为缓存位置。 maven: 修改settings文件&#xff1a;maven的home路径下的conf文件夹下的settings.xml 对于有些IDEA&#xff0c;还需要配置。但是不要再打开项目后的FILE-->settings配置&#xff0c;而是需要在选…

git和php的区别,Git与Github的有什么区别

Git是一款免费&#xff0c;开源的分布是版本&#xff0c;用于敏捷高效的处理任何或小或大的项目。分布式相对于集中式的最大区别在于开发者可以提到本地&#xff0c;每个开发者通过克隆&#xff0c;在本地磁盘内拷贝一个完整的GIt仓库。Git的功能特性&#xff1a;1.从服务器上克…

E20171214-sl

well-grounded  地基打的好 relevent adj. 有关的&#xff0c;中肯的; 相关联的proposal n. 建议; 提议; 求婚; 〈美〉投标;转载于:https://www.cnblogs.com/lancgg/p/8281675.html

客户端嵌套 Web 页面如何选择

客户端嵌套 Web 页面如何选择客户端嵌套 Web 页面如何选择作者&#xff1a;驚鏵在使用客户端嵌套WEB页面有一下几种方案&#xff1a;WebView2[1]Electron[2]NW.js[3]sciter[4]miniblink[5]现在国内众多桌面程序都是用了以下五种&#xff0c;因为它跨平台更为方便&#x1f447;。…

每天练习50个shell

1、统计日志每天IP访问量前十 awk {print $1} 1.log | sort -n | uniq -c | sort -n 解释&#xff1a;&#xff08;1&#xff09;awk 命令在分段方面比较有优势&#xff0c;这里的{print $1}将第一段打印出来&#xff0c;awk可以用-F指定分隔符&#xff0c;如果不指定分隔符&am…