普通标签
用于变量输出和模板注释,默认以{ 和 } 作为开始和结束标识,并且在开始标记紧跟标签的定义,如果之间有空格或者换行则被视为非模板标签直接输出。 例如:{KaTeX parse error: Expected 'EOF', got '}' at position 5: name}̲ 、{vo.name} 、{$vo[‘name’]|strtoupper} 都属于正确的标签,而{ $name} 、{ $vo.name}则不属于。
标签库标签
用于模板变量输出、文件包含、条件控制、循环输出等功能,而且完全可以自己扩展功能。
变量输出
字符串变量
在控制器中给模板变量赋值:
$view = new View();
$view->name = 'thinkphp';
return $view->fetch();
然后在模板中使用:
Hello,{$name}!
运行的时候显示:
Hello,ThinkPHP!
注意模板标签的{和$之间不能有任何的空格,否则标签无效。所以,下面的标签
Hello,{ $name}!将不会正常输出name变量,而是直接保持不变输出: Hello,{ $name}!
数组变量
在控制器中给模板变量赋值:
$data['name'] = 'ThinkPHP';
$data['email'] = 'thinkphp@qq.com';
$view->assign('data',$data);
那么,在模板中我们可以用下面的方式输出:
Name:{$data.name}
Email:{$data.email}
或者:
Name:{$data['name']}
Email:{$data['email']}
如果data变量是一个对象,可以用下面的方式输出:
Name:{$data:name}
Email:{$data:email}
或者
Name:{$data->name}
Email:{$data->email}
使用默认值
变量输出提供默认值,php变量、参数不存在或为空时默认:
{$user.nickname|default="这家伙很懒,什么也没留下"}
系统变量使用默认值输出:
{$Think.get.name|default="名称为空"}
默认值和函数(同模板页面调用JS函数方法,PHP函数调用“|”前为参数值,“|”后为函数方法)可以同时使用:
{$Think.get.name|getName|default="名称为空"}
使用运算符
模板输出使用运算符“+”、“-” 、“*”、 “/”和“%”。
运算符 使用示例
+ {$ a+$b}
- {$ a-$b}
* {$ a *$ b}
/ {$ a/ $b}
% {ab}
++ {$ a++} 或 {++$a}
– {$ a- -} 或 {- -$a}
综合运算 {$ a+b ∗ 10 +c}
使用运算符的时候,不再支持常规函数用法:
{$user.score+10} //正确的
{$user['score']+10} //正确的
{$user['score']*$user['level']} //正确的
{$user['score']|myFun*10} //错误的
{$user['score']+myFun($user['level'])} //正确的
三元运算
模板可以支持三元运算符,例如:
{$status? '正常' : '错误'}
{$info['status']? $info['msg'] : $info['error']}
{$info.status? $info.msg : $info.error }
{$a==$b ? 'yes' : 'no'}