Smarty foreach 循环次数 首次 末次

原创 2012年05月30日 17:38:51
foreach,foreachelse

{foreach from=$variable key=key name=name iteam=value}

    {$variable|@count}     // 获取数组长度

    {$smarty.foreach.loop.iindex}    // 获取当前循环数组元素下标,以0开始

    {$smarty.foreach.loop.iteration}    // 获取当前循环次数,以1开始

    {$smarty.foreach.loop.first}    // 为true时,标记循环第一次执行

    {$smarty.foreach.loop.last}    // 为true时,标记循环最后一次执行
 {$smarty.foreach.name.last}    // 为true时,标记循环最后一次执行

    {$smarty.foreach.loop.show}    // 当前是否显示

    {$smarty.foreach.loop.total}    // 循环次数

{/foreach}


_______________________

 
Smarty中如何获取数组的长度:

前提假设:分配了一个数组array给Smarty,假设Smarty的分界符为'{' 和'}'。在很多资料上都看到,在Smarty中要求数组的长度时,可以用在数组后便加|count的方法调用。即通过{array|count}获得 array的长度。但是今天在写模板时,发现这样得不到数组的长度,而只是得到一个返回的字符串Array。也就是说仅仅是返回了{array}的结果,而没有返回其array的长度。

查看smarty\plugins文件夹,发现并没有count的相关方法,也就是说,count是直接调用了php中的方法。后来通过网络上的资料,发现可以在count前面加@,从而正确的获取数组的长度。

再进一步查看Smarty的源码,发现Smarty对属性调节器后边的方法名进行处理时,会对前边加@的进行特殊处理。因此作出判断:在Smarty中的属性调节器中调用php中定义好的函数时,可以通过加@来表示。

对类型为数组的方法进行测试时,发现不加@符号都会出错。比如:要对一个数组调用count方法求出数组的长度,就可以这样调用{array|@count}, 而要对数组调用end方法得出数组的最后一组数据时,则可以通过{array|@end}。

Smarty foreach控制循环次数的实现详解

1.可以用{$array| count} 来试试。 2. .代码如下: {foreach from=$variable key=key name=name iteam=value...
  • ximenxiafeng
  • ximenxiafeng
  • 2013年12月29日 15:31
  • 3758

smarty中foreach属性中 index、last、iteration、show

.index包含单签数组的索引,从零开始。{* The header block is output every five rows *} {* 每五行输出一次头部区块 *} {foreach fr...
  • gongqinglin
  • gongqinglin
  • 2016年07月01日 11:47
  • 9592

Smarty - foreach遍历使用方法

Smarty -  {foreach},{foreachelse} Attribute Name属性名称 Type类型 Required必要 Default默认值 Descripti...
  • h330531987
  • h330531987
  • 2017年04月04日 20:48
  • 978

Smarty学习笔记——条件判断语句、循环语句和文件引用

一、条件判断语句: 基本句式: {if $name eq "Mary"} Welcome Mary. {elseif $name eq "Jack"} Welcome Jack. {e...
  • Dreamer_wjg
  • Dreamer_wjg
  • 2016年03月30日 09:24
  • 1688

smarty中foreach语句怎样控制循环次数?

foreach 是除 section 之外处理循环的另一种方案(根据不同需要选择不同的方案)。 foreach 用于处理简单数组(数组中的元素的类型一致),它的格式比 section 简单许多,缺点是...
  • lizhixin705
  • lizhixin705
  • 2016年11月01日 10:06
  • 141

for循环与foreach循环 10万次性能测试[php] 带花括号与不带花括号四种情况

for和foreach的性能测试结果 那么今天给大家谈谈的也是性能问题,只不过单单讨论的是 for和foreach的性能测试结果:不说太多, 小二先上图: 1.测试结果图(其中四张)...
  • u011391184
  • u011391184
  • 2017年03月26日 09:25
  • 1179

smarty自定义函数【register,block】以及自定义插件

这是smarty的两个比较常用的自定义函数的方法。 这里面设计了两个文件,一个是模板文件:testfunction.html 另外一个可以称之为控制器文件:functioncontroller.php...
  • jijunyuan_11109
  • jijunyuan_11109
  • 2014年04月14日 22:36
  • 1182

smarty模板中标签的输出方式

smarty模板中的标签有以下输出方式: ① 原样输出,即&标签名 ② 标签参与数学运算(不推荐,模板只保持输出就行了) {$age+30} 老头的真实年龄是{$age},他找老婆的最适合年...
  • CNYYGJ
  • CNYYGJ
  • 2016年06月26日 16:47
  • 1055

smarty入门教程三-------Smarty引擎的工作原理

1. Smarty的工作原理是:  Smarty自带
  • u012784277
  • u012784277
  • 2014年10月18日 10:09
  • 1515

Java foreach(加强for循环)

foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。 foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for...
  • znwnymys
  • znwnymys
  • 2016年09月07日 14:55
  • 1793
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Smarty foreach 循环次数 首次 末次
举报原因:
原因补充:

(最多只允许输入30个字)