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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SpringBootTest—–踩坑错误

    SpringBootTest—–踩坑错误Springboot降低了我们对spring开发的难度采用了大量在的自动配置,我们只需要进行简单的基本配置,就能快速开发一个spring应用。同样spring对于单元测试也有场景启动器—-spring-boot-starter-test,可以让我们在,spring环境下进行测试。昨天测试的时候,容器都无法启动,检查之后发现了原因,也是因为自己粗心大意。@RunWith(value…

    2022年5月22日
    39
  • 万洲金业平台上炒黄金亏损了怎么办?「建议收藏」

    万洲金业平台上炒黄金亏损了怎么办?「建议收藏」  由于受国际行情变化影响,黄金市场很难长时间维持单边走势,因此金价起伏波动不断才是正确的打开方式。尽管黄金价格不断变化为人们营造了良好的盈利空间,但对于大多数人来说,尽管亏损是难以避免的,但真当风险来临,还是难以接受。所以今天就详细介绍一下当人们在万洲金业平台上发生了炒金亏损之后应该怎么办。万洲金业是一家专业的黄金交易平台,为人们提供了极为周到的黄金投资服务,也借助良好的市场表现成为了不少人的炒金选择。即便如此也不能代表平台客户不会发生黄金投资亏损。  在万洲金业平台上炒黄金,一旦发生了交易亏损,

    2022年6月15日
    83
  • 普通正态分布如何转换到标准正态分布中_正态分布化成标准正态的公式

    普通正态分布如何转换到标准正态分布中_正态分布化成标准正态的公式1.普通正态分布转换标准正态分布公式我们知道正态分布是由两个参数μ\muμ与σ\sigmaσ确定的。对于任意一个服从N(μ,σ2)N(\mu,\sigma^2)N(μ,σ2)分布的随机变量XXX,经过下面的变换以后都可以转化为μ=0,σ=1\mu=0,\sigma=1μ=0,σ=1的标准正态分布(standardnormaldistribution)。转换公式为:z=X−μσz=\…

    2022年9月21日
    3
  • sql_UNION合并 INTERSECT交集 MINUS

    sql_UNION合并 INTERSECT交集 MINUS

    2021年6月10日
    110
  • Java 实现一个单例模式_Java实现单例模式的两种方式

    Java 实现一个单例模式_Java实现单例模式的两种方式单例模式在实际开发中有很多的用途,比如我们在项目中常用的工具类,数据库等资源的连接类。这样做的好处是避免创建多个对象,占用内存资源,自始自终在内存中只有一个对象为我们服务。单例对象一般有两种实现方式。懒汉式和饿汉式。饿汉式实现如下:packagecom.day05;/***饿汉式**@authorAdministrator**/publicclassSingle{//定义一个个私有静态本类对…

    2022年7月8日
    21
  • 如何在WEBIDE个人版中添加其它版本的资源库「建议收藏」

    如何在WEBIDE个人版中添加其它版本的资源库「建议收藏」SAP资源库不断的在更新,怎么在本地的WEBIDE中使用新版本中的控件呢?答案就是添加相应版本的SDK到本地的resource库1.下载所需要版本的源这里下载所需要的SDK2.添加源到WEBIDE只需要解压resource和test-resource这两个文件夹到本地WEBIDE路径下,参照本地orion所在的目录路径在这个路径下对应下载的SDK的版本新建一个文件夹,我下的…

    2022年10月10日
    4

发表回复

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

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