博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
thinkphp 前台html调用函数 格式化输出
阅读量:7106 次
发布时间:2019-06-28

本文共 1658 字,大约阅读时间需要 5 分钟。

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

模板变量的函数调用格式为:

XML/HTML代码

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

XML/HTML代码

{
$webTitle|md5|strtoupper|substr=0,3} 编译后的PHP代码就是:PHP代码

 

注意函数的定义和使用顺序的对应关系,通常来说函数的第一个参数就是前面的变量或者前一个函数使用的结果,

如果你的变量并不是函数的第一个参数,需要使用定位符号,例如:

XML/HTML代码{
$create_time|date="y-m-d",###} 编译后的PHP是:PHP代码

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

TMPL_DENY_FUNC_LIST=>"echo,exit,halt"

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

并且还提供了在模板文件中直接调用函数的快捷方法,无需通过模板变量,包括两种方式:

1、执行方法并输出返回值:

格式:{:function(…)}

例如,输出U方法的返回值:

XML/HTML代码{
:U('User/insert')} 编译后的PHP代码是PHP代码

2、执行方法但不输出:

格式:{~function(…)}

例如,调用say_hello函数:

XML/HTML代码

{~say_hello('ThinkPHP')} 编译后的PHP代码是:PHP代码
比如我自定义函数是这样function Category($cid){ $Category=D("Category"); $Category=$Category->where('id='.$cid)->find(); return $Category['title']; }我想在模板中调用这个函数则在模板中可以这样写{
$vo.cid|category=###}当然自定义函数要放在项目目录/Common/common.php中

实际项目中,我们经常需要标签变量加减运算的操作。但是,在ThinkPHP中,并不支持模板变量直接运算的操作。

幸运的是,它提供了自定义函数的方法,我们可以利用自定义函数解决:
ThinkPHP模板自定义函数语法如下:
格式:{:function(…)} (参考官方帮助文档:)
利用这个,我们来试做加法和减法。

在Think中定义函数。在项目的common文件夹下新建common.php文件(这样会自动加载)。定义两个函数:

function  template_add($a,$b){      echo(intval($a)+intval($b));}function  template_substract($a,$b){    echo(intval($a)-intval($b));}

在模板中使用函数:

{:template_add($var1,$var2)}
即可显出变量var1于var2的和。

把自定义的函数放在Common目录下common.php里面如果调用不出来,把文件名改成common.class.php,定义import(@.common.common)

转载地址:http://lpphl.baihongyu.com/

你可能感兴趣的文章
JavaScript进行DOM操作时的一点点小经验
查看>>
Android获取手机应用
查看>>
Weblogic12c安装与配置详解
查看>>
结对-英文词频检测-结对项目总结
查看>>
php随机生成汉字
查看>>
android:scaleType属性
查看>>
在Ubuntu上手动安装nginx软件
查看>>
Linux任务前后台的切换
查看>>
SpringBoot之第一个应用HelloWorld
查看>>
Thinkphp 数据的修改及删除操作
查看>>
hbase命令
查看>>
Java序列化和反序列化
查看>>
acm algorithm practice Dec. 27 MST
查看>>
LINQ系列:Linq to Object投影操作符
查看>>
微信公众号的文本回复(文本回复接口)
查看>>
CentOS7.X怎样更新yum源
查看>>
color theme
查看>>
vue 监听组件被重新渲染后的事件
查看>>
[Aaronyang] 写给自己的WPF4.5 笔记9[复杂数据处理三步曲,数据展示ListView泪奔2/3]...
查看>>
第十章 集成ISIS协议--10.1
查看>>