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 中 {foreach} 和 {foreachelse} 的使用。
实例思路:从数据库中取出内容,赋给一个数组变量 $_html ,再给这个数组变量分配给模板,然后在模板中进行该数组的遍历。
数据库、主文件 index.php,Smarty 模板初始化文件 init.inc.php,请参照上篇文章《PHP 中使用 Smarty 之七:内建函数 foreach,foreachelse》
/tpl/index.tpl
执行结果:
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
|
用于显示循环执行的次数。不仅可以在循环中,也可以在执行结束后调用此属性
|
分享到:
相关推荐
主要介绍了PHP模板引擎Smarty内建函数section,sectionelse用法,结合实例形式详细分析了section,sectionelse进行循环处理的技巧与使用方法,需要的朋友可以参考下
smarty模板引擎之内建函数用法_.docx
smarty中section的使用 smarty section php
smarty内建函数
在实际操作中与section 功能一样,但foreach在Smarty一般用来处理一维数组。2、include 多功能使用3、IF条件语句的使用4、literal strip 文本的处理技巧 literal 数据将被当作文本处理,此时模板将忽略其内部的所有...
Smarty是一个使用PHP写出来的PHP模板引擎,目的是要使用PHP程序同美工分离,使的程序员改变程序的逻辑内容时不会影响到美工的页面设计,美工重新修改页面时不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为...
Smarty是一个使用PHP写出来的PHP模板引擎,目的是要使用PHP程序同美工分离,使的程序员改变程序的逻辑内容时不会影响到美工的页面设计,美工重新修改页面时不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为...
PHP100视频教程29:PHP模板引擎Smarty内置函数.rar
主要介绍了smarty模板引擎之内建函数用法,实例分析了smarty中foreach函数、if...else...、if...elseif...elseif...else...等内建函数的使用方法,具有一定参考借鉴价值,需要的朋友可以参考下
section 功能一样,但foreach在Smarty一般用来处理一维数组。 2、include 多功能使用 3、IF条件语句的使用 4、literal strip 文本的处理技巧 literal 数据将被当作文本处理,此时模板将忽略其内部的所有字符...
主要介绍了PHP模板引擎Smarty内建函数用法,结合实例形式分析了smarty中常见的内建函数功能,定义与使用方法,需要的朋友可以参考下
$smarty= Smarty::instance(); 模板 之前的smarty模板,相当于重新定义了一套标签语言,那么smarty3提供了一种新的模板形式,直接支持php语法的模板。 但是问题就出来了,我们还有必要用模板吗? 引用php类型模板...
1、foreach 数组的处理 2、include 多功能使用 3、IF条件语句的使用 4、literal strip 文本的处理技巧
主要介绍了smarty模板引擎中内建函数if、elseif和else的使用方法,通过两个示例分析了if、elseif和else的使用技巧,需要的朋友可以参考下
主要介绍了smarty模板引擎使用内建函数foreach循环取出所有数组值的方法,实例分析了foreach循环遍历数组的几种常用技巧,需要的朋友可以参考下
php模版 (smarty)php模版 (smarty)php模版 (smarty)php模版 (smarty)php模版 (smarty)php模版 (smarty)php模版 (smarty)
1、Smarty介绍及应用的优缺点 2、Smarty的配置 3、Smarty的应用:变量,循环…
php之smarty入门
在smarty中调用php的内置函数,相信很多人都不是很很了解smarty的一个重要功能,就是能在smarty模板里面调用php的内置函数