【Thinkphp教程】模板中使用函数

仅仅是输出变量并不能满足模板输出的需要,内置模板引擎支持对模板变量使用调节器和格式化功能,其实也就是提供函数支持,并支持多个函数同时使用。用于模板标签的函数可以是PHP内置函数或者是用户自定义函数,和smarty不同,用于模板的函数不需要特别的定义。
模板变量的函数调用格式为:


  1. {$varname|function1|function2=arg1,arg2,### }


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


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


编译后的PHP代码就是:


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


注意函数的定义和使用顺序的对应关系,通常来说函数的第一个参数就是前面的变量或者前一个函数调用的返回结果,如果你的变量并不是函数的第一个参数,需要使用定位符号,例如:


  1. {$create_time|date="y-m-d",###}


编译后的PHP是:


  1. <?php echo (date("y-m-d",$create_time)); ?>


函数的使用没有个数限制,但是可以允许配置TMPL_DENY_FUNC_LIST定义禁用函数列表,系统默认禁用了exit和echo函数,以防止破坏模板输出,我们也可以增加额外的定义,例如:


  1. TMPL_DENY_FUNC_LIST=>"echo,exit,halt"


多个函数之间使用半角逗号分隔即可。

并且还提供了在模板文件中直接调用函数的快捷方法,这种方式更加直接明了,而且无需通过模板变量,包括两种方式:
1、执行方法并输出返回值
格式:{:function(…)} 
例如,输出U方法的返回值:


  1. {:U('User/insert')}


编译后的PHP代码是


  1. <?php echo U('User/insert');?>



2、执行方法但不输出
格式:{~function(…)} 
例如,调用say_hello函数:


  1. {~say_hello('ThinkPHP')}


编译后的PHP代码是:


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

转载于:https://my.oschina.net/PHPDOTAER/blog/340698

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值