ThinkPHP 模版中的内置标签

ThinkPHP 模版中的内置标签

内置标签就是模版引擎提供的一组可以完成控制、循环和判断功能的类似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 提供了一组范围判断标签:innotinbetweennotbetween四个标签,都用于判断变量是否在某个范围中。
//如果 id123任意一个将输出
<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标签,可以统一innotinbetweennotbetween
<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 从第几条开始,起始值0length共多少条
<volistname=“data”id=“arr”offset=“5”length=“10”>
<li>{$arr.id} — {$arr.user} — {$arr.mail}</li>
</volist>
//mod 求当前余数,当前index除以21,输出偶数
<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标签就是简单的循环标签。
//199循环
<forstart=“1”end=“100”>
{$i}<br/>
</for>
除了startend必须值,还有三个可选值。comparison是大于还是小于,默认值为lt
<) ;name是循环变量名,默认值为istep是步进值,默认为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 导入,jscss是目录
<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” />
系统还提供了专用 jscss标签,专门用于加载

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>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113269.html原文链接:https://javaforall.net

(0)
上一篇 2021年10月21日 下午1:00
下一篇 2021年10月21日 下午1:00


相关推荐

  • PHP数组详解

    作为一名C++程序员,在转做PHP开发的过程中,对PHP数组产生了一些混淆,与C++数组有相似的地方,也有一些不同,下面就全面地分析一下PHP的数组及其与C++中相应数据类型的区别和联系。数组的分类

    2021年12月27日
    41
  • RTMP协议简介

    RTMP协议简介RTMP 协议 nbsp RTMP 协议封包由一个包头和一个包体组成 包头可以是 4 种长度的任意一种 12 8 4 nbsp 1byte s 完整的 RTMP 包头应该是 12bytes 包含了时间戳 AMFSize AMFType StreamID 信息 nbsp 8 字节的包头只纪录了时间戳 AMFSize AMFType 其他字节的包头纪录信息依次类推 nbsp 包体最大长度默认为 128 字节 通过 chunkSiz

    2026年3月17日
    1
  • 0成本薅Cursor Pro教育优惠:全流程免费教程【持续更新】

    0成本薅Cursor Pro教育优惠:全流程免费教程【持续更新】

    2026年3月16日
    2
  • 修改ubuntu上的pycharm镜像源,详细步骤

    修改ubuntu上的pycharm镜像源,详细步骤毕竟用官方的链接下载简直像个蜗牛一样 等得不耐烦 于是我就去用了清华镜像源 不废话了 上步骤 第一个配置 第一步 files setting 就是进入设置的意思 第二步 找到 project 这里 双击右边其中一个模块进入第三步 点击 ManageReposi 第四步 点击左下角像个笔的那个图标在这个方框输入镜像源地址 点击 ok 就行 我已经设置好了在这里我多介绍几个镜像源 根据自己喜好选择吧 个人偏向清华的 清华 https pypi tuna tsinghua edu

    2026年3月16日
    2
  • java 音频转为wav格式标准音频 | Java工具类

    java 音频转为wav格式标准音频 | Java工具类目录简述环境依赖maven依赖ffmpeg依赖工具类代码总结简述该工具类主要是为了将各类音频转为wav标准格式,其中可以调节采样率、声道数等指标。主要是使用ffmpeg命令进行转换。环境依赖maven依赖<dependency><groupId>org.bytedeco</groupId><artifactId>javacv-platfor

    2022年6月20日
    28
  • 文心一言图生图怎么用?AI绘图新玩法,拯救你的设计焦虑!

    文心一言图生图怎么用?AI绘图新玩法,拯救你的设计焦虑!

    2026年3月12日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号