模板引擎支持对输出的变量做格式化处理,也就是使用函数,并且支持多个函数。
格式:
{$变量|函数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'); ?>
以上两种方法,也支持传入模板变量作为函数的参数。