掌握Thinkphp3.2.0----内置标签

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

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

一. 判断比较

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

switch语句

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

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

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

比较标签,都能和else搭配

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

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

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

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

 1 <present name="Think.get.user">$_GET[‘user‘]已赋值</present>
 2 //判断变量是否为空,空则输出
 3 <empty name="user">user 为空值</empty>
 4 //判断变量是否为空,不空则输出
 5 <notempty name="user">user不为空值</notempty>
 6 //判断变量是否为空,组合
 7 <empty name="user">
 8 user为空值
 9 <else />
10 user不为空值
11 </empty>
12 //判断变量是否为空,系统变量
13 <empty name="Think.get.user">$_GET[‘user‘]为空值</empty>
14 //判断常量是否定义,定义了输出
15 <defined name="APP_PATH">APP_PATH 常量已定义</defined>
16 //判断常量是否定义,没定义输出
17 <notdefined name="APP_PATH">APP_PATH 常量未定义</notdefined>
18 //判断常量是否定义,组合
19 <defined name="APP_PATH">
20 APP_PATH常量已定义
21 <else />
22 APP_PATH常量未定义
23 </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 是将要遍历循环的数组名,可以自定义。

各种属性:

 1 //offset 从第几条开始,起始值 0,length 共多少条
 2 <volist name="data" id="arr" offset="5" length="10">
 3 <li>{$arr.id} -- {$arr.user} -- {$arr.mail}</li>
 4 </volist>
 5 //mod 求当前余数,当前 index 除以 2 余 1,输出偶数
 6 <volist name="data" id="vo" mod="2">
 7 <eq name="mod" value="1">
 8 <li>{$vo.id} -- {$vo.user} -- {$vo.mail}</li>
 9 </eq>
10 </volist>
11 //没有数据的情况下使用 empty 填充
12 <volist name="data" id="vo" empty="没有任何数据">
13 <li>{$vo.id} -- {$vo.user} -- {$vo.mail}</li>
14 </volist>
15 //empty 属性不支持 HTML 直接输入,但可以通过变量输出
16 $this->assign(‘empty‘, ‘<span style="color:red">没有任何数据</span>‘);
17 <volist name="data" id="vo" empty="$empty">
18 //通过 key 输出循环遍历的变量
19 <volist name="data" id="vo" key="k">
20 <li>{$k} -- {$vo.id} -- {$vo.user} -- {$vo.mail}</li>
21 </volist>
22 //没有指定 k,也可以用 i 变量输出
23 <li>{$i} -- {$vo.id} -- {$vo.user} -- {$vo.mail}</li>
24 //key 变量,可以直接输出索引值,从 0 开始
25 <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 //从 1 到 99 循环
2 <for start="1" end="100">
3 {$i}<br />
4 </for>
5 //完整形式
6 <for start="1" end="100" comparison="lt" step="2" name="k">
7 {$i}<br />
8 </for>

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

三.其他标签

 1 //在模版中定义变量, value 值可以为变量 ($user) 或系统变量 ($Think.get.user)
 2 <assign name="var" value="123" />
 3 {$var}
 4 //在模版中定义常量, value 值可以为变量 ($user) 或系统变量 ($Think.get.user)
 5 <define name="MY_NAME" value="Lee" />
 6 {$Think.const.MY_NAME}
 7 import 导入标签可以智能的导入 js 和 css 文件
 8 //常规引入方法
 9 <script type="text/javascript" src="__PUBLIC__/js/index.js"></script>
10 <link rel="stylesheet" type="text/css"
11 href="__PUBLIC__/css/index.css" />
12 //使用 import 导入,js 和 css 是目录
13 <import type="js" file="js.index" />
14 <import type="css" file="css.index" />
15 //使用 import 导入,basepath 修改默认路径
16 <import type="js" file="js.index" basepath="./Common" />
17 load 加载标签可以智能的加载 js 和 css 文件
18 //使用 load 加载
19 <load href="__PUBLIC__/js/index.js" />
20 <load href="__PUBLIC__/css/index.css" />
21 系统还提供了专用 js 和 css 标签,专门用于加载
22 //使用专用标签
23 <js href="__PUBLIC__/js/index.js" />
24 <css href="__PUBLIC__/css/index.css" />
 1 //使用 php 标签
 2 <php>
 3 $a = 1;
 4 $b = 2;
 5 echo $a + $b;
 6 </php>
 7 //使用 php 语法
 8 <?php
 9 $a = 1;
10 $b = 2;
11 echo $a + $b;
12 ?>
13 如果想原样输出标签极其内容,可以使用 literal 标签
14 //原样输出
15 <literal>
16 <php>echo 123;</php>
17 </literal>
时间: 2024-10-09 07:03:34

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

Jsp的内置标签和jstl标签

1.内置标签(动作标签) 内置标签不需要再jsp页面导入标签 1).forward:请求的转发,格式如下 <%-- 作用与这个相同 <%request.getRequestDispatcher("/forward2.jsp?name=gqxing").forward(request, response); %> --%> <jsp:forward page="/forward2.jsp"> <jsp:param value=

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

本文参考 官方文档 . 一  模板变量 格式: {{ variable_name }} variable_name   命名规则与变量命名规则类似,允许字符数字下划线,不允许标点. variable_name后面可以跟dot  .  以此来访问变量的属性.查询顺序: 字典查询 属性或者方法查询: 若为方法查询,则要求该方法不需要传入任何参数.调用该方法后,会将该方法返回的结果赋予该变量. 数字索引查询 二  内置标签 格式: {% tag %} 1  block  定义一个可以被子模板覆盖的区域

内置标签[2]

一.遍历循环 ThinkPHP 内置标签提供了 Volist 标签.Foreach 标签和 For 标签. 在 Home/controller/UserController.class.php 中插入一下代码: 1 class UserController extends Controller { 2 public function index() { 3 $user = M('User'); 4 $this->assign('data',$user->select()); 5 $this-&

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

学习jsp不得不学习jsp标签,一般来说,对于一个jsp开发者,可以理解为jsp页面中出现的java代码越少,对jsp的掌握就越好,而替换掉java代码的重要方式就是使用jsp标签. jsp标签的分类: 1)内置标签(动作标签): 不需要在jsp页面导入标签 2)jstl标签: 需要在jsp页面中导入标签 3)自定义标签 : 开发者自行定义,需要在jsp页面导入标签 1.内置标签(动作标签): <jsp:forward />转发标签: 语法:<jsp:forward page="

内置标签[1]

ThinkPHP 模版中的内置标签,所谓内置标签就是模版引擎 提供的一组可以完成控制.循环和判断功能的类似 HTML 语法的标签. 一. 判断比较 ThinkPHP 内置了 IF 标签用于在模版中进行条件判断. 首先在  Home/controller/UserController.class.php  内插入以下代码: 1 class UserController extends Controller { 2 public function index() { 3 $user='蜡笔小新';

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

一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1. JSP模板元素:JSP中HTML标签及文本 2. 脚本:写JAVA代码,<% %> 3. 表达式:用于输出变量及表达式,<%= %> 4. 注释:分为三种 a) <!-- --> :JSP翻译成Servlet时也将进行翻译.页面中也有. b) <% /*.......*/ %>:JSP翻译成Se

Hexo 添加自定义的内置标签

灵感 想设计一个记录自已骑行的页面,显示时间.地点.路线图等信息.方便以后做一些留念.定位想实现下面类似的效果.参考:<特效>      实现方案也比较简单,反键查看源码.直接Copy,在加之改造即可.下面所述的方式是怎么提高代码的复用性.(内置标签) 简单实现 查看源码发现大致结构代码如下: <div class="location"> <i class="location-icon" style="opacity: 1;

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

使用原生js自定义内置标签 效果图 代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA

视图 模板渲染 过滤器(内置) 标签

今日内容 视图 视图加装饰器 模板渲染 过滤器(内置) 标签 视图 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片 无论视图本身包含什么逻辑,都要返回响应.代码写在哪里也无所谓,只要它在你当前项目目录下面.除此之外没有更多的要求了 FBV和CBV 视图 FBV(函数类) FBV(function base views) 就是在视图里使用函数处理请求

ThinkPHP中的内置标签

ThinkPHP中的内置标签 1.内置标签分类 闭合标签 <tag></tag> 开放标签 <tag /> 2.包含文件标签 主要功能:实现对文件的包含(类似于require或include) 基本语法: <include?file="模板文件名"?/> 特别注意:include标签中模板文件的路径是基于项目的入口文件(index.php)位置. 案例:实现项目首页功能 ① 在View视图模板中,创建一个Public文件夹,作为公用文件夹