php

thinkphp变量输出

2023-08-26 81

普通标签

用于变量输出和模板注释,默认以{ 和 } 作为开始和结束标识,并且在开始标记紧跟标签的定义,如果之间有空格或者换行则被视为非模板标签直接输出。 例如:{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'}