ThinkPHP 模板变量输出

Wesley13
• 阅读 459

普通输出

输出模板中的变量,格式如下:

{$变量名称}

例子:

{$username}            //普通变量
{$userinfo["email"]}        //数组方式
{$userinfo["sub"]["name"]}     //三维数组方式
{$userinfo:email}        //对象方式
{$userinfo.email}        //自动判断数组或对象方式

默认输出

如果输出的模板变量没有值,但是我们需要在显示的时候赋予一个默认值的话,可以使用 default 语法来默认显示一个值。

格式:

{$变量|default="默认值"}

例子:

{$username|default="匿名"}

使用函数

对模板变量使用函数

模板引擎支持对输出的变量做格式化处理,也就是使用函数,并且支持多个函数。

格式:

{$变量|函数1|...|函数n=参数1,...,参数n,### }

函数从左往右对变量执行,先执行函数1,得到结果后作为参数再执行函数2,依次类推,并且默认情况下执行的结果是作为下一个函数第一个参数。

例子:

{$webTitle|md5|strtoupper|substr=0,3}

实际执行结果等效为:

<?php
echo substr(strtoupper(md5($webTitle)),0,3);
?>

如果变量或上函数执行的结果不是函数或下一个函数的第一个参数,那么需要使用定位符“###”:

{$userinfo["regdate"]|date="Y-m-d H:i",###}

实际执行结果等效为:

<?php
echo date("y-m-d H:i",$userinfo["regdate"]|); 
?>

提示

对变量使用函数没有数量限制,但默认禁用了 exit 和 echo 函数,以防止破坏模板输出。关于禁用的函数具体配置可参见《ThinkPHP 系统配置》。

模板直接使用函数

模板文件中还支持直接调用函数的快捷方法,无需通过模板变量,包括两种方式:

1、执行函数并输出返回值

格式:

{:函数}

例子:

{:say_hello('ThinkPHP')}    //say_hello()为用户自定义函数

实际执行结果等效为:

<?php
echo say_hello('ThinkPHP');
?>

2、执行函数但不输出

格式:

{~函数}

例子:

{~say_hello('ThinkPHP')}    //say_hello()为用户自定义函数

实际执行结果等效为:

<?php
say_hello('ThinkPHP');
?>

以上两种方法,也支持传入模板变量作为函数的参数。

系统变量输出

系统变量包括:server、session、post、get、request、cookie、env。系统变量的输出不需要事先赋值给某个模板变量。系统变量的输出以 $Think. 开头,并且仍然支持使用函数。

例子:

{$Think.session.session_id|md5}    //输出 $_SESSION 变量并使用 md5 加密
//或简写为
{$_SESSION. session_id|md5}
//输出$_GET变量
{$_GET.pageNumber}

系统常量输出

使用$Think.const输出系统常量。

例子:

{$Think.const.ACTION_NAME}    //输出 ThinkPHP 系统定义的常量 ACTION_NAME(当前操作名称)
//或简写为
{$Think.ACTION_NAME}

配置参数输出

使用 $Think.config 输出项目的配置参数值。

例子:

{$Think.config.DB_PREFIX}

输出的值和 C('DB_PREFIX') 的返回结果是一样的。

快捷输出

为了使得模板定义更加简洁,系统还支持一些常用的变量输出快捷标签,包括:

  • {@var} 与 {$Think.session.var} 等效,输出 Session 变量
  • {#var} 与 {$Think.cookie.var} 等效,输出 Cookie 变量
  • {&var} 与 {$Think.config.var} 等效,输出配置参数
  • {%var} 与 {$Think.lang.var} 等效,输出语言变量
  • {.var} 与 {$Think.get.var} 等效,输出 GET 变量
  • {^var} 与 {$Think.post.var} 等效,输出 POST 变量
  • {*var} 与 {$Think.const.var} 等效,输出常量
点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
前端尾随者 前端尾随者
2年前
sourceTree 添加 ssh key 方法
1.使用git客户的生成公私钥:id\rsa、id\rsa.pub1.1设置Git的username和email:$gitconfigglobaluser.name"xxx"$gitconfig\globaluser.email"xxx.mail@xxx.com"1.2.生成SSH密钥过程:1.2.1.检查是不是已经存在密钥(
待兔 待兔
4天前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
2年前
thinkphp3.2.3模板渲染支持三元表达式
thinkphp3.2.3模板渲染支持三元表达式{$status?'正常':'错误'}{$info'status'?$info'msg':$info'error'}注意:三元运算符中暂时不支持点语法。如下:           <divclass"modalhidefade"id'myModa
Stella981 Stella981
2年前
Lua基础(对象)
:和.区别.   stu{id100,name"Tom",age21}成员变量   function stu.toString()成员函数    return stu.id .. stu.name .. stu.age   endprint(stu
Wesley13 Wesley13
2年前
thinkphp 模板变量输出替换和赋值
一.变量输出的几个方法<?phpnamespaceapp\index\controller;usehttp\Params;usethink\Config;usethink\Controller;usethink\Request;usethink\View;
Stella981 Stella981
2年前
JS 对象数组Array 根据对象object key的值排序sort,很风骚哦
有个js对象数组varary\{id:1,name:"b"},{id:2,name:"b"}\需求是根据name或者id的值来排序,这里有个风骚的函数函数定义:function keysrt(key,desc) {  return function(a,b){    return desc ? ~~(ak
Wesley13 Wesley13
2年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Stella981 Stella981
2年前
Django 学习 之 模板(html)与配置静态文件
一.模板(html)1.模板语法之变量:语法为{{}}在Django模板中遍历复杂数据结构的关键是句点字符,语法:{{var\_name}}var\_name是一个变量名称,需要和views文件retu