内置标签就是模版引擎提供的一组可以完成控制、循环和判断功能的类似HTML语法的标签。

 

一、判断比较:

 

1、if标签进行条件判断

//if语句的完整格式
<if condition="$user eq '蜡笔小新'">
小新
<elseif condition="$user eq '黑崎一护'" />
一护
<else />
错误
</if>
//condition 条件里可以使用
PHP 函数
<if condition="mb_substr($user,0,3,'UTF-8') eq '蜡笔小'">
//condition 条件里使用点语法,智能判断数组或对象
<if condition="$data.user eq '蜡笔小新'">
//condition 条件里使用冒号语法,直接使用对象
<if condition="$data:user eq '蜡笔小新'">
//condition 条件里使用系统变量
<if condition="$Think.get.user eq '蜡笔小新'">

2、Switch 标签

//name 的值和 IF语句一样,可以是变量、数组、对象、函数或系统变量
<switch name="user">(变量不需要$符号)
<case value="蜡笔小新">小新</case>
<case value="黑崎一护">一护</case>
<default />错误
</switch>

3、比较标签

标签                          含义
eq 或 equal             等于
neq 或 notequal    不等于
gt                               大于
egt                         大于等于
lt                                小于
elt                          小于等于
heq                          恒等于
nheq                      不恒等于

//控制器变量$user=蜡笔小新,输出小新
<eq name="user"value="蜡笔小新">小新</eq>(变量不需要$符号)
PS:比较标签还提供了一个统一标签 compare,比较类型通过type属性完成。
//compare 统一方法
<compare type="eq"name="user"value="蜡笔小新">小新</compare> (变量不需要$符号)

4、范围判断标签

ThinkPHP 提供了一组范围判断标签:in、notin、between、notbetween四个标签,都用于判断变量是否在某个范围中。
//如果 id是1,2,3任意一个将输出
<in name="id"value="1,2,3">id在范围内</in>
//in 标签,支持
else
<in name="id"value="1,2,3">
id在范围内
<else/>
id不在范围内
</in>
//notin 标签,正好相反
<notin name="id"value="1,2,3">id不在范围内</notin>
//between标签,从哪里到哪里的范围
<between name="id"value="1,10">id在范围内</between>
//notbetween标签,从哪里到哪里的范围
<notbetween
name="id"value="1,10">id不在范围内</notbetween> 
PS://range标签,可以统一in、notin、between和notbetween
<range name="id"value="1,2,3"type="in">id在范围内</range>

PS://name值可以是系统变量
<in name="Think.get.id"value="1,2,3">id在范围内</in>(变量不需要$符号)
//value值可以是变量或系统变量
<in name="id"value="$Think.get.range">id在范围内</in>(变量需要$符号)

5、判断变量的标签

//判断变量是否已赋值,赋值了就输出,空字符串、0也算赋值
<present name="user">user已经赋值</present>
//判断变量是否已赋值,没有创建或赋值为null,都算没有值
<notpresent
name="user">user还没有值</notpresent>
//判断变量是否已赋值,组合
<present name="user">
user已赋值
<else />
user未赋值
</present>
//判断变量是否已赋值,系统变量
<present name="Think.get.user">$_GET['user']已赋值</present>

PS:present标签底层调用的是isset函数

//判断变量是否为空,空则输出(null、0、空字符串均为未赋值)
<empty name="user">user为空值</empty>
//判断变量是否为空,不空则输出
<notempty
name="user">user不为空值</notempty>
//判断变量是否为空,组合
<empty name="user">
user为空值
<else />
user不为空值
</empty>
//判断变量是否为空,系统变量
<empty name="Think.get.user">$_GET['user']为空值</empty> 
//判断常量是否定义,定义了输出

PS:empty标签底层调用的是empty函数

<definedname="APP_PATH">APP_PATH常量已定义</defined>
//判断常量是否定义,没定义输出
<notdefined
name="APP_PATH">APP_PATH常量未定义</notdefined>
//判断常量是否定义,组合
<defined name="APP_PATH">
APP_PATH常量已定义
<else />
APP_PATH常量未定义
</defined>

 

二、遍历循环

1、Volist标签

Volist 标签:通常用于查询数据集的结果输出,通过select()方法返回的是一个二
维数组,可以直接使用 volist 标签进行输出。
<ul>
<volist name="data"id="arr">
<li>{$arr.id} -- {$arr.user} -- {$arr.mail}</li>
</volist>
</ul>
PS:这里的 name="data"中的data是控制器给模版定义的数据变量,要对应;这里
的 id="arr"中的
arr 是将要遍历循环的数组名,可以自定义。
//offset 从第几条开始,起始值0,length共多少条
<volistname="data"id="arr"offset="5"length="10">
<li>{$arr.id} -- {$arr.user} -- {$arr.mail}</li>
</volist>
//mod 求当前余数,当前index除以2余1,输出偶数
<volistname="data"id="vo"mod="2">
<eq name="mod"value="1">
<li>{$vo.id} -- {$vo.user} -- {$vo.mail}</li>
</eq>
</volist>
//没有数据的情况下使用empty填充
<volistname="data"id="vo"empty="没有任何数据">
<li>{$vo.id} -- {$vo.user} -- {$vo.mail}</li>
</volist>
//empty 属性不支持HTML直接输入,但可以通过变量输出
$this->assign('empty','<span style="color:red">没有任何数据</span>');
<volistname="data"id="vo"empty="$empty">
//通过key输出循环遍历的变量
<volistname="data"id="vo"key="k">
<li>{$k} -- {$vo.id} -- {$vo.user} -- {$vo.mail}</li>
</volist>
//没有指定k,也可以用i变量输出
<li>{$i} -- {$vo.id} -- {$vo.user} -- {$vo.mail}</li>
//key 变量,可以直接输出索引值,从0开始
<li>{$key} -- {$vo.id} -- {$vo.user} -- {$vo.mail}</li>

2、foreach标签

Foreach 标签和Volist标签类似,只不过
Foreach 标签更加简单,没有额外属性。
//只支持key属性,但{$key}变量支持
<ul>
<foreach name="data"item="vo">
<ul>{$vo.id} -- {$vo.user}</ul>
</foreach>
</ul>

3、for标签

For标签就是简单的循环标签。
//从1到99循环
<forstart="1"end="100">
{$i}<br/>
</for>
除了start和end必须值,还有三个可选值。comparison是大于还是小于,默认值为lt
(<) ;name是循环变量名,默认值为i;step是步进值,默认为1。
//完整形式
<forstart="1"end="100"comparison="lt"step="2"name="k">
{$i}<br/>
</for>

三.其他标签

ThinkPHP
模版中还有一些其他标签。
1、//在模版中定义变量,value值可以为变量($user)或系统变量($Think.get.user)
<assignname="var"value="123"
/>
{$var}
//在模版中定义常量,value值可以为变量($user)或系统变量($Think.get.user)
<definename="MY_NAME"value="Lee"
/>
{$Think.const.MY_NAME}

2、import导入标签可以智能的导入
js 和 css
文件
//常规引入方法
<scripttype="text/javascript"src="__PUBLIC__/js/index.js"></script>
<link rel="stylesheet"type="text/css"
href="__PUBLIC__/css/index.css" />
//使用import
导入,js和
css是目录
<importtype="js"file="js.index"
/>
<import type="css"file="css.index"
/>
//使用import
导入,basepath修改默认路径
<importtype="js"file="js.index"basepath="./Common"
/>

3、load加载标签可以智能的加载
js 和 css
文件
//使用load
加载
<loadhref="__PUBLIC__/js/index.js"
/>
<load href="__PUBLIC__/css/index.css" />
系统还提供了专用 js和
css标签,专门用于加载

4、//使用专用标签
<jshref="__PUBLIC__/js/index.js"
/>
<css href="__PUBLIC__/css/index.css" />

5、PHP代码可以和标签在模版文件中混合使用, 可以在模版文件里面书写任意的
PHP语句
代码。
//使用php
标签
<php>
$a = 1;
$b = 2;
echo $a + $b;
</php>
//使用php
语法
<?php
$a = 1;
$b = 2;
echo $a + $b;
?>

6、如果想原样输出标签极其内容,可以使用literal
标签
//原样输出
<literal>
<php>echo 123;</php>
</literal>

ThinkPHP 模版中的内置标签的更多相关文章

  1. ThinkPHP中的内置标签

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

  2. Thinkphp中的内置标签用法

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

  3. 8. Smarty3:模版中的内置函数

    smarty3中对内置函数的修改比較大,加入了很多新的功能:变量声明.表达式,流程控制,函数.数组等.可是建议不要在模版中去使用过于复杂的逻辑,而是要尽量将一些程序设计逻辑写到PHP中,并在模版中採用 ...

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

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

  5. thinkphp内置标签简单讲解

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

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

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

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

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

  8. thinkphp5内置标签

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

  9. Django内置标签

    在Django中也提供了大量Django自带的内置标签来供我们使用.标签的写法与过滤器的写法不同,标签是具有开始和结束的,例如:{% if  %}为开始标签,{% endif %}为结束标签. 可以查 ...

随机推荐

  1. Node环境变量 process.env 的那些事儿

    前言 这两天在和运维GG搞部署项目的事儿. 碰到一个问题就是,咱们的dev,uat,product环境的问题. 因为是前后端分离,所以在开发和部署的过程中会有对后端接口的域名的切换问题.折腾了一下午, ...

  2. DOM事件机制

    前言 本文主要介绍DOM事件级别.DOM事件模型.事件流.事件代理和Event对象常见的应用,希望对你们有些帮助和启发! 本文首发地址为GitHub博客,写文章不易,请多多支持与关注! 一.DOM事件 ...

  3. LintCode_408 二进制求和

    给定两个二进制字符串,返回他们的和(用二进制表示). 思路 string s = ""; 目标字符串 cp 存储进位;取 0或1 sum = a[i] + b[i] + cp;分为 ...

  4. mkdir、touch、rm和rmdir命令

    一.mkdir命令 mkdir命令用来创建目录.该命令创建由dirname命名的目录.如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定的目录:如果给出了一个已经存在的路径,将 ...

  5. Leetcode783.Minimum Distance Between BST Nodes二叉搜索树结点最小距离

    给定一个二叉搜索树的根结点 root, 返回树中任意两节点的差的最小值. 示例: 输入: root = [4,2,6,1,3,null,null] 输出: 1 解释: 注意,root是树结点对象(Tr ...

  6. 用dreamweaver查找页面位置

    复制页面的一段代码,然后用Dreamweaver在整个项目中查找代码. 找不到的原因:1.查找的内容是从数据库中读出来的.连数据库文件一起查便知. 2.查找的代码是某个函数生成的.

  7. JavaScript--天猫数量输入框

    <!DOCTYPE html> <head> <meta charset="utf-8" /> <title>无标题文档</t ...

  8. (四)IO流之InputStream和OutputStream

    InputStream:定义了字节输入流的抽象类 OutputStream:定义了字节输出流的抽象类;该类所有方法返回void值 FileInputStream:继承InputStream FileO ...

  9. AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle【暴力】

    AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle 我要崩溃,当时还以为是需要什么离散化的,原来是暴力,特么五层循环....我自己写怎么都 ...

  10. Code Force 429B Working out【递推dp】

    Summer is coming! It's time for Iahub and Iahubina to work out, as they both want to look hot at the ...