lists 标签主要用于在模板中循环输出数据集或者多维数组。
# 1:普通输出
然后我们在模版中定义如下代码,循环输出名言标题和IT名人:
~~~
<lists name="arrList" id="arrVo">
{$arrVo.title} {$arrVo.people}
</lists>
~~~
模板编译后的结果:
~~~
<?php if( is_array ( $arrList ) ) : $index = 0; $arrList = $arrList; if( count( $arrList ) == 0 ) : echo ""; else : foreach ( $arrList as $key => $arrVo ) : ++$index; $mod = ( $index % 2) ?>
<?php echo is_array( $arrVo ) ? $arrVo['title'] : $arrVo->title; ?> <?php echo is_array( $arrVo ) ? $arrVo['people'] : $arrVo->people; ?>
<?php endforeach; endif; else: echo ""; endif; ?>
~~~
> 注意:list 标签的 **name** 属性表示模板赋值的变量名称,因此不可随意在模板文件中改变。**id** 表示当前的循环变量,可以随意指定,但确保不要和name属性冲突。
# 2:部分输出
支持输出部分数据,例如输出其中的第 **2~4** 条记录
~~~
<lists name="arrList" id="arrVo" offset="2" length='4'>
{$arrVo.title} {$arrVo.people}
</lists>
~~~
模板编译后的结果:
~~~
<?php if( is_array ( $arrList ) ) : $index = 0; $arrList = array_slice( $arrList, 2, 4 ); if( count( $arrList ) == 0 ) : echo ""; else : foreach ( $arrList as $key => $arrVo ) : ++$index; $mod = ( $index % 2) ?>
<?php echo is_array( $arrVo ) ? $arrVo['title'] : $arrVo->title; ?> <?php echo is_array( $arrVo ) ? $arrVo['people'] : $arrVo->people; ?>
<?php endforeach; endif; else: echo ""; endif; ?>
~~~
# 3:输出偶数记录
lists 还支持按偶数输出,例如,我们在模板中写下如下的代码:
~~~
<lists name="arrList" id="arrVo" mod="2">
<?php if ( $mod == 1 ) :?>
{$arrVo.title} {$arrVo.people}
<?php endif; ?>
</lists>
~~~
模板编译后的结果:
~~~
<?php if( is_array ( $arrList ) ) : $index = 0; $arrList = $arrList; if( count( $arrList ) == 0 ) : echo ""; else : foreach ( $arrList as $key => $arrVo ) : ++$index; $mod = ( $index % 2) ?>
<?php if ( $mod == 1 ) :?>
<?php echo is_array( $arrVo ) ? $arrVo['title'] : $arrVo->title; ?> <?php echo is_array( $arrVo ) ? $arrVo['people'] : $arrVo->people; ?>
<?php endif; ?>
<?php endforeach; endif; else: echo ""; endif; ?>
~~~
# 4:输出奇数记录
lists 还支持奇数记录的输出:
~~~
<lists name="arrList" id="arrVo" mod="2">
<?php if ( $mod == 0 ) :?>
{$arrVo.title} {$arrVo.people}
<?php endif; ?>
</lists>
~~~
模板编译后的结果:
~~~
<?php if( is_array ( $arrList ) ) : $index = 0; $arrList = $arrList; if( count( $arrList ) == 0 ) : echo ""; else : foreach ( $arrList as $key => $arrVo ) : ++$index; $mod = ( $index % 2) ?>
<?php if ( $mod == 0 ) :?>
<?php echo is_array( $arrVo ) ? $arrVo['title'] : $arrVo->title; ?> <?php echo is_array( $arrVo ) ? $arrVo['people'] : $arrVo->people; ?>
<?php endif; ?>
<?php endforeach; endif; else: echo ""; endif; ?>
~~~
> 说明:奇数记录和偶数记录规定如下,我们以数组的 0 为开始,0、2、4为偶记录,其它的都为基数记录。
# 5:控制换行
mod 属性还用于控制一定记录的换行,例如:
~~~
<lists name="arrList" id="arrVo" mod="2">
{$arrVo.title} {$arrVo.people}
<?php if( $mod == 0 ) : ?>
<br>
<?php endif; ?>
</lists>
~~~
模板编译后的结果:
~~~
<?php if( is_array ( $arrList ) ) : $index = 0; $arrList = $arrList; if( count( $arrList ) == 0 ) : echo ""; else : foreach ( $arrList as $key => $arrVo ) : ++$index; $mod = ( $index % 2) ?>
<?php echo is_array( $arrVo ) ? $arrVo['title'] : $arrVo->title; ?> <?php echo is_array( $arrVo ) ? $arrVo['people'] : $arrVo->people; ?>
<?php if( $mod == 0 ) : ?>
<br>
<?php endif; ?>
<?php endforeach; endif; else: echo ""; endif; ?>
~~~
# 6:输出循环变量
我们在模版中写下如下的代码:
~~~
<lists name="arrList" id="vo" index="k" >
{$k} {$vo.people}
</lists>
~~~
模板编译后的结果:
~~~
<?php if( is_array ( $arrList ) ) : $k = 0; $arrList = $arrList; if( count( $arrList ) == 0 ) : echo ""; else : foreach ( $arrList as $key => $vo ) : ++$k; $mod = ( $k % 2) ?>
<?php echo $k; ?> <?php echo is_array( $vo ) ? $vo['people'] : $vo->people; ?>
<?php endforeach; endif; else: echo ""; endif; ?>
~~~
# 7:输出数组的索引
如果要输出数组的索引,可以直接使用 **key **变量,和循环变量不同的是,这个 key 是由数据本身决定,而不是循环控制的,这个 key 可以通过 key 属性指定。
例如:
~~~
<lists name="arrList" id="vo" >
key: {$key}
</lists>
~~~
模板编译后的结果:
~~~
<?php if( is_array ( $arrList ) ) : $index = 0; $arrList = $arrList; if( count( $arrList ) == 0 ) : echo ""; else : foreach ( $arrList as $key => $vo ) : ++$index; $mod = ( $index % 2) ?>
key: <?php echo $key; ?>
<?php endforeach; endif; else: echo ""; endif; ?>
~~~
> 注意:大家看到没有,索引从 0 开始,而不是从 1 开始,这个是数组原始索引。
- 关于 QueryPHP
- 获取 QueryPHP
- 环境要求
- 许可协议 Free
- 执行流程 MVC
- 命名规范 $sName
- 目录结构 DIR
- 单一入口 index.php
- 响应客户端请求 URL
- 命名空间与自动载入 Autoload
- 路由
- 路由导入
- 批量导入
- 参数正则
- 分组定义
- 路由绑定
- 路由域名
- 分层控制器
- 默认和初始化APP
- 默认控制器和方法
- url 模式
- url 生成
- url 伪静态
- url 重写
- url 重定向
- 控制器绑定
- 方法器分层
- 控制器 __init
- 控制器方法交互
- 模板引擎语法
- C变量输出 $sName
- C变量支持函数和方法 $sName|trim
- C快捷输出 ~
- C标签简化 Css & Javascript
- C默认值 eq 三元运算符
- C变量运算符 +-
- 变量递增递减 ++--
- C循环数据 list
- N变量赋值 assign
- N循环数据 list
- N循环数据高级版 lists
- C循环数据 while
- N循环数据 while
- C循环数据 for
- N循环数据 for
- C条件判断 if
- N条件判断 if
- 标签嵌套无限层级
- N循环流程 break & continue
- N使用 PHP 代码
- N包含子模板 include
- J模板引擎 intro
- J条件判断 if
- J循环数据 each
- J变量 & 表达式
- J变量支持函数和方法 hello|test
- J默认值 eq 三元运算符
- J框架前端组件 jquery.queryphp.js
- J前端 CSS 规范
- J前端 JS 规范
- 保护标签自身 tagself
- 数据库
- 数据库配置
- 执行原生 sql 语句
- 数据库事务
- 数据库构造器 prefix
- 数据库构造器 table
- 数据库构造器 forceIndex
- 数据库构造器 where
- 数据库构造器 bind
- 数据库构造器 join
- 数据库构造器 union
- 数据库构造器 orderBy
- 数据库构造器 groupBy
- 数据库构造器 having
- 数据库构造器 distinct
- 数据库构造器 aggregate
- 数据库构造器 limit
- 数据库构造器 forUpdate
- 数据库构造器 columns
- 数据库构造器 reset
- 数据库集合查询
- 数据库查询数据 get
- 数据库查询多条数据 getAll
- 数据库查询单条数据 getOne
- 数据库查询聚合查询 aggregate
- 数据库写入数据 insert
- 数据库写入数据 insertAll
- 配置
- 配置格式
- 惯性配置
- 配置文件
- 读取配置
- 设置配置
- 删除配置
- 日志
- 日志配置参数
- 日志路径
- 日志过滤器
- 日志处理器
- 缓存
- 缓存配置参数
- 缓存路径
- 缓存指定时间
- COOKIE
- COOKIE 配置参数
- 开发调试
- 页面 trace