发布时间:2015-05-27 19:32:16作者:知识屋
仅仅是输出变量并不能满足模板输出的需要,内置模板引擎支持对模板变量使用调节器和格式化功能,其实也就是提供函数支持,并支持多个函数同时使用。用于模板标签的函数可以是PHP内置函数或者是用户自定义函数,和smarty不同,用于模板的函数不需要特别的定义。
模板变量的函数调用格式为:
XML/HTML代码
{$varname|function1|function2=arg1,arg2,### }
说明:
{ 和 $ 符号之间不能有空格 ,后面参数的空格就没有问题
###表示模板变量本身的参数位置
支持多个函数,函数之间支持空格
支持函数屏蔽功能,在配置文件中可以配置禁止使用的函数列表
支持变量缓存功能,重复变量字串不多次解析
使用例子:
XML/HTML代码
{$webTitle|md5|strtoupper|substr=0,3}
编译后的PHP代码就是:
PHP代码
<?php echo (substr(strtoupper(md5($webTitle)),0,3)); ?>
注意函数的定义和使用顺序的对应关系,通常来说函数的第一个参数就是前面的变量或者前一个函数使用的结果,如果你的变量并不是函数的第一个参数,需要使用定位符号,例如:
XML/HTML代码
{$create_time|date="y-m-d",###}
编译后的PHP是:
PHP代码
<?php echo (date("y-m-d",$create_time)); ?>
函数的使用没有个数限制,但是可以允许配置TMPL_DENY_FUNC_LIST定义禁用函数列表,系统默认禁用了exit和echo函数,以防止破坏模板输出,我们也可以增加额外的定义,例如:
TMPL_DENY_FUNC_LIST=>"echo,exit,halt"
多个函数之间使用半角逗号分隔即可。
并且还提供了在模板文件中直接调用函数的快捷方法,无需通过模板变量,包括两种方式:
1、执行方法并输出返回值:
格式:{:function(…)}
例如,输出U方法的返回值:
XML/HTML代码
{:U('User/insert')}
编译后的PHP代码是
PHP代码
<?php echo U('User/insert');?>
2、执行方法但不输出:
格式:{~function(…)}
例如,调用say_hello函数:
XML/HTML代码
{~say_hello('ThinkPHP')}
编译后的PHP代码是:
PHP代码
<?php say_hello('ThinkPHP');?>
比如我自定义函数是这样
function Category($cid)
{
$Category=D("Category");
$Category=$Category->where('id='.$cid)->find();
return $Category['title'];
}
我想在模板中调用这个函数则在模板中可以这样写
{$vo.cid|category=###}
当然自定义函数要放在项目目录/Common/common.php中
实际项目中,我们经常需要标签变量加减运算的操作。但是,在ThinkPHP中,并不支持模板变量直接运算的操作。
幸运的是,它提供了自定义函数的方法,我们可以利用自定义函数解决:
ThinkPHP模板自定义函数语法如下:
格式:{:function(…)} (参考官方帮助文档:http://thinkphp.cn/Manual/196)
利用这个,我们来试做加法和减法。
在ThinkPHP中定义函数。在项目的common文件夹下新建common.php文件(这样系统会自动加载)。定义两个函数:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
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)
如何对PHP文件进行加密方法 PHP实现加密的几种方式介绍
php生成圆角图片的方法 电脑中php怎么生成圆角图片教程
用PHP构建一个留言本方法步骤 php怎么实现留言板功能
php中三元运算符用法 php中的三元运算符使用说明
php文件如何怎么打开方式介绍 php文件用什么打开方法
PHP怎么插入数据库方法步骤 php编程怎么导入数据库教程
如何安装PHPstorm并配置方法教程 phpstorm安装后要进行哪些配置
PHP 获取远程文件大小的3种解决方法 如何用PHP获取远程大文件的大小
20个实用PHP实例代码 php接口开发实例代码详细介绍
如何架设PHP服务器方法步骤 怎么搭建php服务器简单教程