内置模板引擎对模板变量的支持相当充分,除了可以输出正常变量外,还可以输出特殊变量和对输出变量使用
函数定义(并支持多个
函数)。
模板变量的标签格式为
格式:{$varname|function1|function2=arg1,arg2,### }
说明:
{ 和 $ 符号之间不能有空格 ,后面
参数的空格就没有问题
###表示模板变量本身的
参数位置
支持多个
函数,
函数之间支持空格
支持
函数屏蔽功能,在配置文件中可以配置禁止使用的
函数列表
支持变量缓存功能,重复变量字串不多次解析
使用例子:
代码:
复制内容到剪贴板
- {$webTitle|md5| strtoupper | substr=0,3 }
- {
$number|number_format=2 }
如果在应用
Action中需要输出某个变量,使用下面的方法:
代码:
复制内容到剪贴板
- $this->assign('name','value');
系统只会输出设定的变量,其它变量不会输出,一定程度上保证了变量的安全性。
系统支持输出数组和对象属性,无论要输出的模板变量是数组还是对象,都可以用下列方式输出:
系统会自动判断要输出的变量,如果是多维数组或者多层对象属性的输出,请使用下面的定义方式:
代码:
复制内容到剪贴板
- {$user['sub']['name']}
- {
$user:sub:name}
如果要同时输出多个模板变量,可以使用下面的方式:
代码:
复制内容到剪贴板
- $array = array();
$array['name'] = 'thinkphp';
$array['email'] = 'liu21st@gmail.com';
$array['phone'] = '12335678';
$this->assign($array);
这样,就可以在模板文件中同时输出name、email和phone三个变量。
除了常规变量的输出外,模板引擎还支持系统变量和系统常量、以及系统特殊变量的输出。它们的输出不需要对模板变量赋值。
系统变量(依然支持
函数使用和大小写、空格),以Think.打头,如
代码:
复制内容到剪贴板
- {$Think.server.script_name } //取得$_SERVER变量
{$Think.session.session_id|md5 } // 获取$_SESSION变量
{$Think.get.pageNumber } //获取$_GET变量
{$Think.cookie.name } //获取$_COOKIE变量
系统常量
代码:
复制内容到剪贴板
- {$Think.const.__FILE__ }
- {
$Think.const.MODULE_NAME }
特殊变量 ,由ThinkPHP系统定义的常量
代码:
复制内容到剪贴板
- {$Think.version } //版本
{$Think.now } //现在时间
{$Think.template|basename } //模板页面
{$Think.LDELIM } //模板标签起始符号
{$Think.RDELIM } //模板标签结束符号
配置
参数
语言变量
还有一些常用的变量输出快捷标签,包括下面:
代码:
复制内容到剪贴板
- {:function(…)} //执行方法并输出返回值
{~function} //执行方法不输出
{@var} //输出Session变量
{&var} //输出配置参数
{%var} //输出语言变量
{.var} //输出GET变量
{^var} //输出POST变量
{*var} //输出常量