变量输出使用不同标签就足够了,但是要完成其他的控制、循环和判断功能,就需要借助模板引擎的标签库功能了,系统内置标签库的所有标签无需引入标签库即可直接使用。
include | 包含外部模板文件(闭合) | file |
import | 导入资源文件(闭合 包括js css load别名) | file,href,type,value,basepath |
volist | 循环数组数据输出 | name,id,offset,length,key,mod |
foreach | 数组或对象遍历输出 | name,item,key |
for | For循环数据输出 | name,from,to,before,step |
switch | 分支判断输出 | name |
case | 分支判断输出(必须和switch配套使用) | value,break |
default | 默认情况输出(闭合 必须和switch配套使用) | 无 |
compare | 比较输出(包括eq neq lt gt egt elt heq nheq等别名) | name,value,type |
range | 范围判断输出(包括in notin between notbetween别名) | name,value,type |
present | 判断是否赋值 | name |
notpresent | 判断是否尚未赋值 | name |
empty | 判断数据是否为空 | name |
notempty | 判断数据是否不为空 | name |
defined | 判断常量是否定义 | name |
notdefined | 判断常量是否未定义 | name |
define | 常量定义(闭合) | name,value |
assign | 变量赋值(闭合) | name,value |
if | 条件判断输出 | condition |
elseif | 条件判断输出(闭合 必须和if标签配套使用) | condition |
else | 条件不成立输出(闭合 可用于其他标签) | 无 |
php | 使用php代码 | 无 |
Volist 标签
volist标签通常用于查询数据集(select 方法),对于查询出来的结果数组进行遍历输出。
首先赋值:
$User = M("User"); $list = $User->limit(10)->select(); $this->assign('list',$list); $this->display();
页面的展示:
<volist name="list" id="vo"> {$vo.id} : {$vo.name} <br/> </volist>
输出结果:1 : tom
3 : jack
5 : jetty
1.offset 、 length属性 —— 输出部分数据
<volist name="list" id="vo" offset="4" length="5"> {$vo.id} : {$vo.name} <br/> </volist> //显示的是第5条到第10条数据 结果: 18 : jetty 19 : tom2 20 : tom3 21 : tom4 22 : tom5
2.mod属性 —— 将数据分块输出
/* 输出偶数数据 * 第一行的mod值是将数据分成2个一组,序号都是从0开始 * 第二行 当mod值为1时输出数据,也就是显示偶数的数据 */ <volist name="list" id="vo" mod="2"> <eq name="mod" value="1">{$vo.name}</eq> </volist> /* 控制一行记录的换行 * 同理,先将数据分成4个一组,都是从0开始标序号 输出所有数据 * 当每组中的序号为3 也就是显示最后一个数据后,输出换行符 */ <volist name="list" id="vo" mod="4"> {$vo.name} <eq name="mod" value="3"><br/></eq> </volist>
3.empty —— 数据为空提示
<volist name="list" id="vo" empty="暂时没有数据显示"> {$vo.id}|{$vo.name} </volist> //如果没有可显示的数据 就会输出 "暂时没有数据显示"提示 /* * empty 支持向页面传值 */ $this->assign('empty','<span class="empty">没有可显示的数据</span>'); $this->assign('list',$list); $this->display(); //模板中使用: <volist name="list" id="vo" offset="10" length="3" empty="$empty"> {$vo.id}|{$vo.name} </volist>
4.key属性 —— 输出数据序号
<volist name="list" id="vo" empty="$empty" key="k"> {$k} : {$vo.name} </volist> //序号 从1开始 /* 如果key属性没有写,默认的可以用i表示 * 结果与上同 序号也是从1开始 */ <volist name="list" id="vo" empty="$empty"> {$i} {$vo.id}|{$vo.name} </volist> 注:也可以只用key变量,此时序号从0开始。
Foreach标签
foreach标签类似与volist标签,只是更加简单,没有太多额外的属性
name : 表示数据源 item : 表示循环变量
<foreach name="list" item="vo"> {$key}|{$vo} </foreach> //也可以定义索引的变量名 <foreach name="list" item="vo" key="k"> {$k}|{$vo} </foreach> //索引都是从0开始
For 标签
格式:
<for start="开始值" end="结束值" comparison="判断条件" step="步进值" name="循环变量名"> </for>
开始值、结束值、步进值和循环值都可以支持变量,开始值和结束值是必须,其他是可选。comparison的默认值是lt;name的默认值是i,步进值的默认值是1
<for start="1" end="100"> {$i} </for> /* 解析后的代码是: for($i=1; $i<100; $i+=1){ echo $i } */ /** * for循环输出user对象的数据值,k是循环变量名 */ <for start="1" end="6" name="k"> {$user[$k]['id']} : {$user[$k]['username']} <br/> </for>
相关推荐
系统内置的标签中,volist(及其别名iterate)、switch、if、elseif、else、foreach、compare(包括所有的比较标签)、(not)present、(not)empty、(not)defined等标签都可以嵌套使用。例如: <volist name=...
虽然ThinkPHP的模板引擎提供了volist标签,但并没有像Smarty模板中的Smarty.foreach.name.last这样的直接属性来判断是否为循环的最后一条记录。不过,我们可以利用volist标签内置的变量和条件判断语句来实现这一功能...
ThinkPHP模板的foreach标签用于在模板中循环输出数据集或者对对象进行遍历输出。 相对于volist标签而言,foreach标签没有volist标签那么多的功能,却可以对对象进行遍历输出,而volist标签通常是用于输出数组。 ...
7.8.2foreach标签 1 7.8.3for标签 1 7.8.4switch标签 111 7.8.5比较标签 111 7.8.6empty标签 114 7.8.7defined标签 114 7.8.8标签嵌套 114 7.8.9import标签 115 7.8.使用原生PHP 115 7.8.11不解析输出 115 ...
本篇文章将深入探讨ThinkPHP5.0框架视图view中的循环标签,包括`volist`、`foreach`和`for`标签的使用方法。 首先,我们来看`volist`标签,它是ThinkPHP5.0中的一个专有循环标签,主要用于遍历数组或集合。下面是一...
需要注意的是,由于`foreach`和`for`循环无法在循环过程中获取索引,所以这里使用了ThinkPHP提供的`volist`标签。`volist`不仅提供了索引,还可以方便地处理数组、集合或其他数据结构,简化了模板中的逻辑。 在实际...
`foreach`循环是处理数组的常用方式,而在视图中,`<volist><sublist></sublist></volist>`用于遍历和展示数组内容。 8. **分页功能**:ThinkPHP提供了内置的分页工具`Page`类。首先,需要计算总条数,如`$count = ...
- **标签详解**:深入解析各标签的语法和用途,如`Volist`、`Foreach`、`For`、`Switch`等。 以上总结了ThinkPHP3.0完全开发手册中的关键知识点,从入门到高级应用,涵盖了框架的所有核心功能和实践技巧。通过理解...
**8.10 Foreach 标签** - **循环标签**:支持循环遍历数组。 **8.11 For 标签** - **循环标签**:支持 for 循环。 **8.12 Switch 标签** - **选择标签**:支持 switch 语句。 **8.13 比较标签** - **比较操作...
在ThinkPHP中,还有许多内置的标签,如`<volist>`,用于循环遍历数组或查询结果集。`<volist>`可以与`<if>`、`<eq>`等条件标签结合使用,实现复杂的模板逻辑。例如,`<eq>`用于条件判断,`<else>`用于定义条件不成立...
ThinkPHP3.0 的模板引擎提供了一系列内置标签,例如循环标签 `{volist}`、条件标签 `{if}` 等。 **8.7 包含文件** 通过 `{include}` 标签可以引入其他模板文件。 **8.8 导入文件** `{import}` 标签可以导入外部...