阅读 163

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 导入,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>

    赞赏码

     

    非学,无以致疑;非问,无以广识

  • 相关阅读:
    Python与Flask
    Python与MySQL
    range,map,sum
    Java:初始化类、变量、程序块加载解析
    HTML_记录2
    HTML_记录1
    查看当前连接的实例名
    expdp impdp
    行列转换
    oracle创建定时任务

  • 原文地址:https://www.cnblogs.com/lxwphp/p/15454337.html

  • 最新文章

  • 获取status bar高度
    错误: java.lang.RuntimeException: Binary XML file line #7: You must supply a layout_height attribute.
    如何在textview 中指定某段文本为另外字体
    termianl下查看签名信息
    hide software keybox
    RelativeLayout.LayoutParams 使用addRule失效的问题解决办法
    CoreAPI_SaveOrUpdate
    CoreAPI_Update
    CoreAPI_Get_Load
    CoreAPI_Delete

  • 热门文章

  • CoreAPI_对象三种状态
    CoreAPI_JTA简介
    核心开发接口(一)
    ID生成策略(一)
    Hibernate基础配置(二)
    Hibernate基础配置(一)
    pymysql操作数据库
    python打log
    Python opencv
    记得清缓存,浏览器开debug模式!



文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐