使用内置标签的时候,一定要注意闭合-----单标签自闭合,双标签对应闭合

标签的学习在于记忆和应用

一. 判断比较

 //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 '蜡笔小新'">

switch语句

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

默认情况下,case 会自动添加 break 语句防止穿透,如果你就是想要穿透,那么可以去除 break。当然,绝大部分不需要设置 break。

 //去除 break
<case value="蜡笔小新" break="0">小新</case>

比较标签,都能和else搭配

 //eq标签
<eq name="user" value="1">相等<else/>不相等</eq>
//其他的标签和这个标题的用法基本相同不再赘述
//compare统一方法
<compare type="eq" name="user" value="1">相等<else/>不相等</compare>

范围判断标签 in、notin、between、notbetween

判断变量的标签  present -- notpresent  empty -- notempty    defined -- notdefined

其实都可以和else搭配使用,也就说not*没有什么作用,至少实在效果上来说

 <present name="Think.get.user">$_GET['user']已赋值</present>
//判断变量是否为空,空则输出
<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>
//判断常量是否定义,定义了输出
<defined name="APP_PATH">APP_PATH 常量已定义</defined>
//判断常量是否定义,没定义输出
<notdefined name="APP_PATH">APP_PATH 常量未定义</notdefined>
//判断常量是否定义,组合
<defined name="APP_PATH">
APP_PATH常量已定义
<else />
APP_PATH常量未定义
</defined>

二.遍历循环   Volist 标签、Foreach 标签和 For 标签

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 共多少条
<volist name="data" id="arr" offset="5" length="10">
<li>{$arr.id} -- {$arr.user} -- {$arr.mail}</li>
</volist>
//mod 求当前余数,当前 index 除以 2 余 1,输出偶数
<volist name="data" id="vo" mod="2">
<eq name="mod" value="1">
<li>{$vo.id} -- {$vo.user} -- {$vo.mail}</li>
</eq>
</volist>
//没有数据的情况下使用 empty 填充
<volist name="data" id="vo" empty="没有任何数据">
<li>{$vo.id} -- {$vo.user} -- {$vo.mail}</li>
</volist>
//empty 属性不支持 HTML 直接输入,但可以通过变量输出
$this->assign('empty', '<span style="color:red">没有任何数据</span>');
<volist name="data" id="vo" empty="$empty">
//通过 key 输出循环遍历的变量
<volist name="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>

foreach标签

Foreach 标签和 Volist 标签类似,只不过 Foreach 标签更加简单,没有额外属性。

//只支持 key 属性,但{$key}变量支持
<ul>
<foreach name="data" item="vo">
<ul>{$vo.id} -- {$vo.user}</ul>
</foreach>
</ul>

for标签就更简单了

 //从 1 到 99 循环
<for start="1" end="100">
{$i}<br />
</for>
//完整形式
<for start="1" end="100" comparison="lt" step="2" name="k">
{$i}<br />
</for>

除了start和end必须值,还有三个可选值。comparison是大于还是小于,默认值为lt
(<) ;name是循环变量名,默认值为i;step是步进值,默认为1。

三.其他标签

 //在模版中定义变量, value 值可以为变量 ($user) 或系统变量 ($Think.get.user)
<assign name="var" value="123" />
{$var}
//在模版中定义常量, value 值可以为变量 ($user) 或系统变量 ($Think.get.user)
<define name="MY_NAME" value="Lee" />
{$Think.const.MY_NAME}
import 导入标签可以智能的导入 js 和 css 文件
//常规引入方法
<script type="text/javascript" src="__PUBLIC__/js/index.js"></script>
<link rel="stylesheet" type="text/css"
href="__PUBLIC__/css/index.css" />
//使用 import 导入,js 和 css 是目录
<import type="js" file="js.index" />
<import type="css" file="css.index" />
//使用 import 导入,basepath 修改默认路径
<import type="js" file="js.index" basepath="./Common" />
load 加载标签可以智能的加载 js 和 css 文件
//使用 load 加载
<load href="__PUBLIC__/js/index.js" />
<load href="__PUBLIC__/css/index.css" />
系统还提供了专用 js 和 css 标签,专门用于加载
//使用专用标签
<js href="__PUBLIC__/js/index.js" />
<css href="__PUBLIC__/css/index.css" />
 //使用 php 标签
<php>
$a = 1;
$b = 2;
echo $a + $b;
</php>
//使用 php 语法
<?php
$a = 1;
$b = 2;
echo $a + $b;
?>
如果想原样输出标签极其内容,可以使用 literal 标签
//原样输出
<literal>
<php>echo 123;</php>
</literal>

掌握Thinkphp3.2.0----内置标签的更多相关文章

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

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

  2. Jsp的内置标签和jstl标签

    1.内置标签(动作标签) 内置标签不需要再jsp页面导入标签 1).forward:请求的转发,格式如下 <%-- 作用与这个相同 <%request.getRequestDispatch ...

  3. 学会怎样使用Jsp 内置标签、jstl标签库及自定义标签

    学习jsp不得不学习jsp标签,一般来说,对于一个jsp开发者,可以理解为jsp页面中出现的java代码越少,对jsp的掌握就越好,而替换掉java代码的重要方式就是使用jsp标签.  jsp标签的分 ...

  4. Thinkphp中的内置标签用法

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

  5. Spark2.1.0——内置Web框架详解

    Spark2.1.0——内置Web框架详解 任何系统都需要提供监控功能,否则在运行期间发生一些异常时,我们将会束手无策.也许有人说,可以增加日志来解决这个问题.日志只能解决你的程序逻辑在运行期的监控, ...

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

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

  7. JSP--JSP语法--指令---九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构

    一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1. JSP模板元素:JSP中HTML标 ...

  8. JSP--JSP语法--指令--include(动态包含/静态包含)--九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构

    一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1.    JSP模板元素:JSP中HT ...

  9. 使用原生js自定义内置标签

    使用原生js自定义内置标签 效果图 代码 <!DOCTYPE html> <html lang="en"> <head> <meta ch ...

  10. JSP标签:jsp内置标签、jstl标签、自定义标签

     一.jsp标签的分类: 1)内置标签(动作标签): 不需要在jsp页面导入标签 2)jstl标签: 需要在jsp页面中导入标签 3)自定义标签 : 开发者自行定义,需要在jsp页面导入标签    1 ...

随机推荐

  1. time和datetime时间戳---python

    time模块 time模块提供各种操作时间的函数 说明:一般有两种表示时间的方式:        1.时间戳的方式(相对于1970.1.1 00:00:00以秒计算的偏移量),时间戳是惟一的 2.以数 ...

  2. Hibernate POJO在序列化(JSON)时遇到的若干问题

    假设某 POJO 有属性如下: private Set<User> users = new HashSet<>(0); @OneToMany(fetch = FetchType ...

  3. CKEditor 配置

    在asp.net 中注意需要特殊处理控件的ID 先引入js <script type="text/javascript" src="ckeditor/ckedito ...

  4. 【Xcode 4 无法打开 Xcode 5 DP 打开过的工程文件 解决方法】

    试用Xcode 5 DP打开现有工程文件后再用Xcode4打开后 Xcode 4 会进入崩溃模式折腾了几次发现下面的方法可以让工程文件恢复 如果在Xcode5-DP中打开过xib文件需要在侧栏中修改I ...

  5. Jprofile监控本地tomact

    第一步:安装Jprofile后,点击jprofiler.exe 第二步:配置要监控的tomact 1.点击startcenter 2.弹出对话框,点击new session下面的new server ...

  6. C# 如何用多个字符串来切分字符串并去除空格

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  7. 终端下vim无法输入问题解决

    最近回归vim时发现会偶尔出现vim无法输入,但光标在动的情况,一度怀疑是spf13的问题,后来经搜索,才发现是因为vim下,快捷键 Ctrl+s 的功能是停止输入,在IDE下编程时间长了,都有潜意识 ...

  8. 一则奇怪的案例处理:ORA-00257: archiver error. Connect internal only, until freed

    前天,业务反应数据库不能连接 在操作系统通过字符串尝试登陆数据库报:ORA-00257: archiver error. Connect internal only, until freed 解决思路 ...

  9. 中国175个 AAAAA级风景区,去过20个 以上,你就是旅游达人

    省份 数量 景区名称 我 北京 7 故宫博物院 1 天坛公园 颐和园 1 八达岭-慕田峪长城旅游区 1 明十三陵景区(神路-定陵-长陵-昭陵) 恭王府景区 北京奥林匹克公园(鸟巢-水立方-中国科技馆- ...

  10. 前端Js跨域方法汇总—剪不断,理还乱,是跨域

    1.通过jsonp跨域2.通过修改document.domain来跨子域(iframe)3.隐藏的iframe+window.name跨域4.iframe+跨文档消息传递(XDM)5.跨域资源共享 C ...