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 四个标签,都用于判断变量是否在否个范围。

Thinkphp中的内置标签用法的更多相关文章

  1. ThinkPHP中的内置标签

    ThinkPHP中的内置标签 1.内置标签分类 闭合标签 <tag></tag> 开放标签 <tag /> 2.包含文件标签 主要功能:实现对文件的包含(类似于re ...

  2. ThinkPHP 模版中的内置标签

    内置标签就是模版引擎提供的一组可以完成控制.循环和判断功能的类似HTML语法的标签.   一.判断比较:   1.if标签进行条件判断 //if语句的完整格式 <if condition=&qu ...

  3. thinkphp中的内置操作数据库与mysql中的函数汇总

    8.4.4 Model类getModelName() 获取当前Model的名称getTableName() 获取当前Model的数据表名称switchModel(type,vars=array()) ...

  4. python中常用内置函数用法总结

    强制类型转换:int()float()str()list()tuple()set()dict()总结,这几种类型转换函数得用法基本一致,基本就是int(要转换得数据).返回值类型为对应得数据类型   ...

  5. thinkphp 内置标签volist 控制换行

    thinkphp 内置标签volist 控制换行 volist标签通常用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行 ...

  6. django中模板变量与内置标签以及过滤器

    本文参考 官方文档 . 一  模板变量 格式: {{ variable_name }} variable_name   命名规则与变量命名规则类似,允许字符数字下划线,不允许标点. variable_ ...

  7. thinkphp内置标签简单讲解

    thinkphp内置标签简单讲解 1.volist循环 name 需要遍历的数据 id 类似于foreach中 value offset 截取数据起始位置 length 截取数据的个数 mod 奇偶数 ...

  8. JSP内置标签 JSP中JavaBean标签 JSP开发模式 EL和JSTL快速入门

    2 JSP内置标签(美化+业务逻辑)   1)为了取代<%%>脚本形式,使用JSP标签/JSP动作,目的:与JSP页面的美化,即JSP面页都是由标签组成,不再有其它的内容   2)JSP内 ...

  9. thinkphp5内置标签

    thinkphp5内置标签 知道内置标签怎么用,查手册的时候好查 却功能的时候在里面找着来用 内置标签一览 内置标签 变量输出使用普通标签就足够了,但是要完成其他的控制.循环和判断功能,就需要借助模板 ...

随机推荐

  1. JavaEE开发之SpringBoot工程的创建、运行与配置

    本篇博客我们就来聊一下如何使用Eclipse+STS插件来创建Spring Boot的工程.Spring Boot可以使我们更容易的使用Spring框架,在Spring Boot中自动配置了好多东西, ...

  2. idea 查看tomcat源码

    一.源码下载 SVN :http://svn.apache.org/repos/asf/tomcat/ GIT :https://github.com/apache 二.添加pom.xml文件 1. ...

  3. Mqtt服务器搭建

    .bg { background: #99CC99 } Mqtt服务器搭建 测试环境:CentOS64位 1.安装基础软件 yum install gcc-c++ yum install cmake ...

  4. centos下搭建redis集群

    必备的工具: redis-3.0.0.tar redis-3.0.0.gem   (ruby和redis接口) 分析:     首先,集群数需要基数,这里搭建一个简单的redis集群(6个redis实 ...

  5. js-获取两个字符串日期的相隔周

    例如说"2017-04-01 23:00:00"是周六, "2017-04-28 23:00:00"是周五,包含各自所在的那一周,我真正需要获得的结果是5个周. ...

  6. 荣获MVP感想

    感言 最近特别忙,除了工作之外最开心的算是收到了MVP的奖杯,从到申请到审批通过也不过一个礼拜的时间,从去年就开始想着是否应该一试,通过和张善友大哥的沟通抱着试一试的忐忑结果意外惊喜通过了,由于每月申 ...

  7. Java学习笔记——排序算法之进阶排序(堆排序与分治并归排序)

    春蚕到死丝方尽,蜡炬成灰泪始干 --无题 这里介绍两个比较难的算法: 1.堆排序 2.分治并归排序 先说堆. 这里请大家先自行了解完全二叉树的数据结构. 堆是完全二叉树.大顶堆是在堆中,任意双亲值都大 ...

  8. 设计模式--代理模式(C++版)

    一:代理模式简介 专业版描述:为其他对象提供一种代理以控制对这个对象的访问. 在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 戏剧性描述: ...

  9. [asp.net mvc 奇淫巧技] 02 - 巧用Razor引擎在Action内生成Html代码

    在web开发中经常会遇到在内部代码中获取Html,这些Html是需要和数据进行一起渲染.并不是直接把Html代码返回给客户端.这样的做法有很多应用场景,例如分页.Ajax一次性获取几段Html片段.生 ...

  10. CI框架浅析(全篇)

        业余花了点时间看看CodeIgniter框架(简称CI),CI目前的稳定版本是 3.X,4.0版本已经出来了,但还在测试中,所以我分析的还是 3.x 版本. CI是一个很轻便的框架,整个下载包 ...