tp5-视图层2



使用默认值

给变量提供默认值,例如:

{$name|default="xxxx"}

默认值和函数可以同时使用,例如:

{$Think.get.name|getName|default="xxxx"}

三元运算符

{$name? "yes":"no"}
在什么情况下执行三种false: 未定义定义了没赋值`

三种写法

{$status? '正常':'错误'}
{$info['status']? $info['msg']:$info['error']}
{$info.status?$info.msg:$info.error}

5.0还支持{$name.aa ?? 'xxxx'}

第一种情况: ?:

<{$status? '正常';'错误'}>
echo !empty($sataus)?''正常;'错误'

简写:标准的三目判断 如果问号前面不写参数为输出判断的参数

{$status?:'xxxx'}相当于{$status? $status:'xxxx'}

第二种情况: ??

{vaername.aa ?? 'xxxx'}
原生》echo isset($static) ?$status:'错误';

第三种情况 : ?= (只能输出判断表达式为真的情况)

<{$status?='xxx'}>
原生》if(!empty($status)) echo 'xxxx';

第四种情况: 条件表达式 ==,>=,<=

<{$a==$b ? 'yes':'no'}>
原生》 echo $a==$b?'yes':'no';

tp的注释-literal

html中的<!---->不适用tp,因为文档加载时优先加载tp代码。

{literal} tp代码 {/literal}
tp的内置标签,输出不用尖角号<{}>直接{}即可

<!---
多行注释 {/ /}只能用于一个定界符内<{/xxxxxxxx/}>
模板单行注释<{//$sataus}>
-->

模板注释
1.只能注释同一个标签内
2.结束标记跟定界符之前可以有空格,但起始标记不能与定界符有任何空格
3.模板注释后在临时文件中是不显示的


包含文件-include(内置标签)

{include file='模板文件1,模板文件2,.........' /}

参数1:模板表达式【模快@】【控制器/】【操作】

参数2:使用模板相对地址

模板包含:

1.模板表达式中对应的控制器,方法未必一定存在
2.如果模板文件中含有对应控制器赋值的变量,那么该变量需要在当前控制器中再次赋值;
3.包含文件中可以在使用include标签包含别的文件,但注意不要形成A包含A,或者A包含B而B又包含A这样的死循环。

三种接值方法

1.post接值

$post=$request->post();
$arr=$request->post('id/a');//接数组

2.get接值

$get=$request->get();

3.pathinfo接值

$id=$request->param('id/d');//接单值

pathinfo不能接数组


窝窝头。嘿嘿qwq

ThinkPHP

我来吐槽

*

*