3、函数

知识梳理

//1 常用的过滤方法
date      日期格式化(支持各种时间类型)
format    字符串格式化
upper     转换为大写
lower     转换为小写
first     输出数组的第一个元素
last      输出数组的最后一个元素
default   默认值
raw       不使用(默认)转义

//2 防XSS
为了避免出现XSS安全问题,默认的变量输出都会使用 htmlentities 方法进行转义输出

//3 同时使用多个函数用 | 分隔,从左到右依次调用

 

一 语法

{$password|md5} //竖线后面是函数名,可以使用多个函数
<?php echo htmlentities(md5($password)); ?>//编译后的结果

 

二 常用过滤演示

1)格式化时间日期

//输出时间变量
return View::fetch('',['time' => time()]);
//格式化时间 {$time|date='Y-m-d H:i:s'}年月入时分秒

2)格式化字符串

{$number|format='%02d'}//没有理解如何使用

3)大小写装换

return View::fetch('',['name' => 'jack']);
{$name|upper|lower}
   大写 小写

4)显示数组第一个和最后一个

//输出数组变量
$arr = ['关羽','张飞','赵云','黄忠','马超'];
return View::fetch('',['arr' => $arr]);

//模板页 使用函数 {$arr|last} //输出 马超 {$arr|first} //输出 关羽

5)使用默认值

//输出数组变量
$arr = ['关羽','张飞','赵云','黄忠',''];
return View::fetch('',['arr' => $arr]);

//模板页 使用函数
{$arr|last|default='英雄怎么会无名'}  //如果变量没有值 输出默认值

6)不使用 默认转义

//输出变量
return View::fetch('',['name' => 'JACK']);
//使用函数 {$name|raw}
//解析 <?php echo $name; ?>//没有了 htmlentities 转义

 

三 函数需要多个参数 直接用逗号隔开

//输出变量
return View::fetch('',['name' => '马克吐温']);

//多个参数函数调用
{$name|substr=0,6}//打印出:马克
//编译后的语句
<?php echo htmlentities(substr($name,0,6)); ?>

  

四 另一种语法( PHP式语法 )

return View::fetch('',['name' => 'jack']);
{:substr(strtoupper(md5($name)),
0,3)} <?php echo substr(strtoupper($name),0,3); ?> //该语法编译后的代码不使用过滤转义

 

2)用助手函数输出

{:app('cache')->get('name')} //这个没有搞懂
表示调用容器中的think\Cache对象实例输出name缓存标识内容。

 

{:开头的变量输出表示调用函数或者类的方法及属性,如果你要带命名空间调用类的属性,例如:
{:think\\App::VERSION}
{:think\\facade\\Request::get('name')}
类的命名空间中的\需要改成\\才能正常调用。

 

posted @ 2021-01-06 09:19  棉花糖88  阅读(85)  评论(0)    收藏  举报