侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

ThinkPHP模板之变量输出、自定义函数与判断语句用法

ThinkPHP  /  管理员 发布于 8年前   251

本文实例讲述了ThinkPHP模板之变量输出、自定义函数与判断语句用法。主要包括变量输出、自定义函数与判断语句三种用法。分享给大家供大家参考。具体分析如下:

模板操作变量输出:

快捷输出变量

复制代码 代码如下:
{:function(…)} //执行方法并输出返回值
{~function} //执行方法不输出
{@var} //输出Session变量
{#var} //输出Cookie变量
{&var} //输出配置参数 
{%var} //输出语言变量
{.var} //输出GET变量
{^var} //输出POST变量
{*var} //输出常量
 模版输出
复制代码 代码如下:
//1 直接调用index操作模板
$this->display();
// 对应Myapp/Tpl/default/Index/index.html
//2 调用Index模块的test1操作模板
$this->display('test1');
//对应Myapp/Tpl/default/Index/test1.html
//2 调用Message模块的test2操作模板()
$this->display('Message:test2');
//对应Myapp/Tpl/default/Message/test2.html
//3 调用XP主题的Message模块的test2操作模板
$this->display('Xp@Message:test2');
//对应Myapp/Tpl/Xp/Message/test2.html
//4 直接指定模板文件的全名
$this->display('../Message/test3.html');
//对应Myapp/Tpl/default/Message/test3.html

使用判断语句

我们可以使用if标签来定义复杂的条件判断,例如:

复制代码 代码如下:
value1
value2
value3

在condition属性中可以支持eq等判断表达式 ,同上面的比较标签,但是不支持带有”>”、”<”等符号的用法,因为会混淆模板解析,所以下面的用法是错误的:

value1
value2


必须改成:
复制代码 代码如下:
value1
value2

除此之外,我们可以在condition属性里面使用php代码,例如:

复制代码 代码如下:
ThinkPHP
other Framework

condition属性可以支持点语法和对象语法,例如:
自动判断user变量是数组还是对象

复制代码 代码如下:
ThinkPHP
other Framework

或者知道user变量是对象

复制代码 代码如下:
ThinkPHP
other Framework

由于if标签的condition属性里面基本上使用的是php语法,尽可能使用判断标签和Switch标签会更加简洁,原则上来说,能够用switch和比较标签解决的尽量不用if标签完成。因为switch和比较标签可以使用变量调节器和系统变量。如果某些特殊的要求下面,IF标签仍然无法满足要求的话,可以使用原生php代码或者PHP标签来直接书写代码。

eq 等于(==)
neq 不等于(!=)
gt 大于(>)
egt 大于等于(>=)
lt 小于(<)
elt 小于等于(<=)
heq 恒等于(===)
nheq 不恒等于(!==)
condition 条件
 
注意
condition 属性值中,变量是需要 $ 符号的,这与其他标签不同。

使用自定义函数的方法

模板变量的函数调用格式:{$varname|function1|function2=arg1,arg2,### }

使用例子:

复制代码 代码如下:
{$webTitle|md5|strtoupper|substr=0,3}
{$number|number_format=2}
{$varname|function1|function2=arg1,arg2,### }

实例如下:

复制代码 代码如下:
function Cate($cid){
$Cate=D('Cate');
$Cate=$Cate->where('id='.$cid)->find();
return $Cate['title'];
}
我想在模板中调用这个函数则在模板中可以这样写
复制代码 代码如下:
{$vo.cid|cate=###}
注意:自定义函数要放在项目应用目录/common/common.php中。 这里是关键。

说明:
{ 和 $ 符号之间不能有空格,后面参数的空格就没有问题;
###表示模板变量本身的参数位置 ;
支持多个函数,函数之间支持空格 ;
支持函数屏蔽功能,在配置文件中可以配置禁止使用的函数列表 ;
支持变量缓存功能,重复变量字串不多次解析。

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《smarty模板入门基础教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

您可能感兴趣的文章:

  • thinkPHP5框架渲染模板的3种方式简述
  • thinkPHP的Html模板标签使用方法
  • ThinkPHP跳转页success及error模板实例教程
  • Thinkphp模板中使用自定义函数的方法
  • ThinkPHP模板输出display用法分析
  • ThinkPHP模板自定义标签使用方法
  • ThinkPHP使用smarty模板引擎的方法
  • 浅析ThinkPHP的模板输出功能
  • Thinkphp模板没有解析直接原样输出的解决方法
  • ThinkPHP模板循环输出Volist标签用法实例详解
  • thinkphp5.1框架模板布局与模板继承用法分析


  • 上一条:
    ThinkPHP实现带验证码的文件上传功能实例
    下一条:
    ThinkPHP查询语句与关联查询用法实例
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • thinkphp + mongodb项目中数据加载慢问题分析及解决(0个评论)
    • thinkphp6框架中封装redis操作类(0个评论)
    • thinkphp6框架中实现定时任务功能流程步骤(0个评论)
    • Thinkphp5.1框架中实现Session+Redis会话共享流程步骤(0个评论)
    • TP5框架版本5.0.10安全漏洞根据官方补丁修复,也是本站安全漏洞修复(0个评论)
    • 近期文章
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-10
    • 2017-12
    • 2018-01
    • 2018-02
    • 2020-03
    • 2021-07
    • 2021-12
    • 2022-05
    • 2022-06
    • 2022-09
    • 2023-01
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客