26
2019.2

looparr标签

作者: POPASP
looparr标签 looparr的作用是将数组进行循环展示 举例 ```brush:html {:$arr=array(1,2,3,5,8,13)}
``` 结果为 ```brush:html
  • 1
  • 2
  • 3
  • 5
  • 8
  • 13
``` 上例中从先定义了一个数组,然后再进行循环展示。上例如果写成asp代码的话,如下 ```brush:html <% dim arr,i arr = array(1,2,3,5,8,13) %>
    <% for i = 0 to ubound(arr) %>
  • <%=arr(i)%>
  • <% next %>
``` 从上面的代码,我们发现POPASP的模板引擎在数据展现上表现得更优雅。 ### looparr格式 ```brush:html ``` ### looparr的参数详解 ```brush:html ``` looparr处理两大类问题,一个是指定了arr,对其循环展示,一个是不指定arr,只要求循环次。 ```brush:vb <% dim theStart,theEnd if theEnd > ubound( arr ) then theEnd = ubound(arr) end if for i = theStart to theEnd step theStep '循环代码 'arr(i)在模板引擎中使用$__value指代 Next %> ``` 上面指定了arr数组,如果不指定arr数组,只是单纯的循环,如下: ```brush:vb <% for i = theStart to theEnd step theStep '循环代码 Next %> ``` 第一个参数arr,即需要循环展现的数组,这在前面已经讲过了。共有四个参数,有些参数是可以省略的,除了第一个参数外,省略的话,冒号需要保留。 ### 参数theStart,即从第几个元素开始循环 假如,我们想从第2个数组元素(theStart=1)开始,则指定theStart即可,当然不指定的话,从第一个元素(theStart=0)开始。 ```brush:html {:$arr=array(1,2,3,5,8,13)}
``` 结果为 ```brush:html
  • 2
  • 3
  • 5
  • 8
  • 13
``` ### 参数theEnd,结束循环的条件 ```brush:html {:$arr=array(1,2,3,5,8,13)}
``` 结果为 ```brush:html
  • 2
  • 3
  • 5
``` ### 参数theStep,循环步长 ```brush:html
``` 结果为 ```brush:html
  • 1
  • 4
  • 7
  • 10
``` POPASP的数组循环,其本质跟asp的数组循环没有多大区别,她无非就是多了一层包装。 ### 取值问题 细心的人会发现,在上面的例子中,如果指定了arr,取值的时候使用的是`$__value`,没有指定arr的时候,使用了`$__key`取asp循环代码块的i值。 我们可以在循环块中使用 ```brush:html $arr__value $__value $__index $__key ``` 这三个值。比如 ```brush:html {:$arr=Array(1,2,3,5,8,13,21)}
序号i
133
``` 结果为 ```brush:html
序号i
0011
1233
2488
362121
``` 这里也可以使用`arr__value`取值,在loopdb与loopfile中最后一个参数可以指定`__value`前面的前缀,但是在looparr中由于参数已经不少了,如果数组是`$arr`或`@arr`这样的名,则可以使用arr作为这儿的前缀,当然arr也可以是别的标识符。 ### looparr的嵌套 looparr不仅可以跟looparr嵌套,也可以跟if等其他块标签相互嵌套。 自身嵌套举例: ```brush:html {:$arr1=Array(1,2,3,5,8,13)} {:$arr2=Array(1,2,3,5,8,13)}
    • [[[$arr2__value]]]
```