Thinkphp中的内置标签有:Volist,Foreach,For,Switch,比较标签,范围判断标签,IF,Present,Empty,Defined,Assign,Define,标签嵌套,import标签

1.Volist标签

volist标签通常用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出。在控制器中首先对模板赋值:

$User=M("User");

$list=$User->limit(10)->select();

$this->assign("list",$list);

在模板定义如下,循环输出用户的编号和姓名:(也可以输出部门数据,例如输出其中的5~15条记录)

<volist name="list" id="vo" offset="5" length="10" empty="无数据">

{$vo.id}:{$vo.name}

<volist>

2.Foreach标签

foreach标签类似与volist标签,只是更加简单,没有太多额外的属性,例如:{$vo.id}:{$vo.name}

name标识数据源item表示循环变量。

可以输出索引,如下:

<foreach name="list" item="vo">

{$key}|{$vo}

</foreach>

也可以定义索引的变量名

<foreach name="list" item="vo" key="k">

{$k}|{$vo}

</foreach>

3.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;

}

4.Switch标签

用法:

<switch name="变量">

<case value="值1" break="0或1">输入内容1</case>

<case value="值2">输出内容2</case>

<default/>默认情况

</switch>

使用方法如下:

<switch name="User.level">

<case value="1">value1</case>

<case value="2">value2</case>

<default/>default

</switch>

其中name属性可以使用函数以及系统变量,例如:

<switch name="Think.get.userId|abs">

<case value="1">admin</case>

<default/>default

</switch>

对于case的value属性可以支持多个条件的判断,使用“|”进行分割,例如:

<switch name="Think.get.type">

<case value="gif|png|jpg">图像格式</case>

<default/>其它格式

</switch>

Case标签还有一个break属性,表示是否需要break,默认是会自动添加break,如果不要break,可以使用:

<switch name="Think.get.userId|abs">

<case value="1" break="0" >admin</case>

<case value="2">admin</case>

<default/>default

</switch>

也可以对case的value属性使用变量,例如:

<switch name="User.userId">

<case value="$adminId">admin</case>

<case value="$memberId">member</case>

<default/>default

</switch>

5.比较标签

比较表浅用于简单的变量比较,复杂的判断条件可以用if标签替换,比较标签是一组标签的集合,基本上用法都一致,如下:

<比较标签 name="变量" value="值">

内容

</比较标签>

系统支持的比较标签以及所表示的含义分别是:

  • eq或equal:等于
  • neq或notequal:不等于
  • gt:大于
  • egt:大于等于
  • lt:小于
  • elt:小于等于
  • heq:恒等于
  • nheq:不恒等于

他们的用法基本一致,区别在于判断的条件不同,并且所有的比较标签都可以和else标签一起使用。

<eq name="name" value="value">

相等

<else/>

不相等

</eq>

当name变量的值大于5就输出

<gt name="name" value="5">value</gt>

当name变量的值不小于5就输出

<egt name="name" value="5">value</egt>

6.范围判断标签

范围判断标签包括 in notin between notbetween 四个标签,都用于判断变量是否在否个范围。

最新文章

  1. ajax请求成功后新开窗口window.open()被拦截解决方法
  2. 【GoLang】GoLang 遍历 map、slice、array方法
  3. js(function(){alert(‘’‘)})
  4. centos修改hostname以及时间同步
  5. 使用AJAX完成用户名是否存在异步校验
  6. Java Blocking Queue
  7. 使用JAP(基类)父类注解
  8. OpenCV3读取、写入和保存图像
  9. php中对共享内存,消息队列的操作
  10. (转载)Delphi TStringList的用法
  11. EXT ajax简单实例
  12. 邮件协议(SMTP)性能测试总结(Foxmail邮箱)
  13. 【翻译】Why JavaScript Is and Will Continue to Be the First Choice of Programmers
  14. php之PDO使用【转载】
  15. 内网服务器启动报错UNEXPECTED INCONSISTENCY解决方法
  16. 开源IM项目-InChat登录接口设计与实现(基于Netty)
  17. Vue-比较方法、计算属性和侦听器
  18. lua语言中的假
  19. NET Core微服务之路:自己动手实现Rpc服务框架,基于DotEasy.Rpc服务框架的介绍和集成
  20. Linux获取/dev/input目录下的event对应的设备【转】

热门文章

  1. 基于Struts2,Spring4,Hibernate4框架的系统架构设计与示例系统实现
  2. 关于[JAVA] Apache FTPClient.listFiles()操作“卡死”问题的分析和解决
  3. CoreCRM 开发实录 —— 前后端分离的重构
  4. java集合系列
  5. [转载]PHP文件解压代码
  6. 初识Celery
  7. MySQL自增长的bug?
  8. IO多路复用深入浅出
  9. 精华【分布式、微服务、云架构、dubbo+zookeeper+springmvc+mybatis+shiro+redis】分布式大型互联网企业架构!
  10. 使用函数指针调用C++虚函数