普通输出
输出模板中的变量,格式如下:
{$变量名称}
例子:
{$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} 等效,输出常量