> 文章列表 > ThinkPHP视图

ThinkPHP视图

ThinkPHP视图

ThinkPHP视图

  • 前言
  • 视图
    • 一、运算符
    • 二、模版函数
    • 三、循环标签
    • 四,volist 循环标签
    • 五,if 判断标签
    • 六,switch 判断标签
    • 七、包含文件
    • 八、其他标签
          • 1. 条件标签
          • 2. 比较标签
          • 3. 循环标签
          • 4. 杂项标签
  • 总结

前言

ThinkPHP视图基本语法和PHP语法非常的像,所以掌握了php基本的语法,学习ThinkPHP视图语法非常的简单,注意模板渲染:就是各个文件夹的位置


视图

模板引擎支持普通标签和XML标签方式两种标签定义,分别用于不同的目的
- 普通标签: 主要用于输出变量、函数过滤和做一些基本的运算操作
- XML标签: 也称为标签库标签,主要完成一些逻辑判断、控制和循环输出,并且可扩展

一、运算符

+,-,*,/,%,++,–,综合运算,三元运算

ThinkPHP视图

  • app/controller/index.php
<?php
namespace app\\controller;use think\\facade\\View;class Index
{public function index(){// 1、模板变量赋值View::assign('a', 1);View::assign('b', 2);// 模板输出return View::fetch();}
}
  • app/view/index/index.html
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>ThinkPHP6</title></head><body><div>{$a+$b}</div><div>{$a-$b}</div><div>{$a*$b}</div><div>{$a/$b}</div><div>{$a%$b}</div><div>{$a++}</div><div>{++$a}</div><div>{$a--}</div><div>{--$a}</div><div>{$c ? '存在' : '不存在'}</div><div>{$a*$b+100}</div></body>
</html>

二、模版函数

如下的模板函数需要注意date,format,default,这些模板函数和其他的模板函数有区别

ThinkPHP视图

  • app/controller/index.php
<?phpnamespace app\\controller;use think\\facade\\View;class Index
{public function index(){View::assign('time', 1576048640);View::assign('num', 10.0032);View::assign('str', 'OUykKE');View::assign('arr', ['老师','asf','sadf']);return View::fetch();}
}
  • app/view/index/index.html
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>ThinkPHP6</title></head><body><div>{$time|date='Y-m-d H:i:s'}</div><div>{$num|format='%02d'}</div><div>{$str|upper}</div><div>{$str|lower}</div><div>{$arr|first}</div><div>{$arr|last}</div><div>{$default|default="1233342"}</div><div>{$str|substr=0,3}</div><div>{$str|md5}</div><div>{$str|lower|substr=0,3}</div> <!--可以多个函数一起使用--></body>
</html>

三、循环标签

如下语法根PHP语法大同小异

  • app/controller/index.php
<?phpnamespace app\\controller;use think\\facade\\View;class Index
{public function index(){$arr = [['id' => 1,'name' => '克'],['id' => 2,'name' => '老师'],['id' => 3,'name' => 'asdf官人']];View::assign('arr', $arr);return View::fetch();}
}
  • app/view/index/index.html
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>ThinkPHP6</title></head><body>{foreach $arr as $v}<div><span>ID:{$v['id']}</span><span>姓名:{$v['name']}</span></div>
{/foreach}</body>
</html>

四,volist 循环标签

  1. 二维数组的结果输出
  2. name 模板赋值的变量名称
  3. id 当前的循环变量,可以随意起名
  4. key 下标,从1开始,默认变量i
  5. offset 开始行数
  6. length 获取行数
  7. empty 如果数据为空,显示此文字
  • app/controller/index.php
<?phpnamespace app\\controller;use think\\facade\\View;class Index
{public function index(){$arr = [['id' => 1,'name' => '克'],['id' => 2,'name' => '老师'],['id' => 3,'name' => 'asdf官人']];View::assign('arr', $arr);return View::fetch();}
}
  • app/view/index/index.html
{volist name="arr" id="v" key="k"  offset="1" length="2"}<div><span>ID:{$v['id']}</span><span>姓名:{$v['name']}</span><span>下标:{$k}</span></div>
{/volist}

五,if 判断标签

if 标签的用法和PHP语法非常接近,用于条件判断

  • app/controller/index.php
<?phpnamespace app\\controller;use think\\facade\\View;class Index
{public function index(){View::assign('status', 1);View::assign('order_status', 4);return View::fetch();}
}
  • app/view/index/index.html
{if $status == 1}<div>开启</div>
{/if}{if $status == 0}<div>关闭</div>
{else/}<div>开启</div>
{/if}{if $order_status == 0}<div>未支付</div>
{elseif $order_status == 1/}<div>已支付 待发货</div>
{elseif $order_status == 2/}<div>已发货 待收货</div>
{elseif $order_status == 3/}<div>已收货 待评论</div>
{elseif $order_status == 4/}<div>已完成</div>
{/if}

六,switch 判断标签

switch 标签的用法和PHP语法非常接近,用于条件判断

  • app/controller/index.php
<?phpnamespace app\\controller;use think\\facade\\View;class Index
{public function index(){View::assign('order_status', 3);return View::fetch();}
}
  • app/view/index/index.html
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>ThinkPHP6</title></head><body>
{switch $order_status}{case 0 }<div>未支付</div>{/case}{case 1 }<div>已支付 待发货</div>{/case}{case 2 }<div>已发货 待收货</div>{/case}{case 3 }<div>已收货 待评论</div>{/case}{case 4 }<div>已完成</div>{/case}
{/switch}</body>
</html>

七、包含文件

  • app/view/index/index.html
{include file="public/header" /}
{include file="public/left" /}{load href="/static/layui/css/layui.css" /}
{load href="/static/layui/layui.js" /}{include file="public/tail" /}

八、其他标签

1. 条件标签

ThinkPHP视图

  • app/controller/index.php
public function index(){View::assign('number',100);View::assign('string','');return View::fetch();
}
  • app/view/index/index.html
{in name="number" value="99,100,101"}number等于99,100,101任意一个值
{/in}
{notin name="number" value="99,100,101"}number不等于99,100,101任意一个值
{/notin}{between name="number" value="1,10"}number等于1 到 10 之间的任意一个值
{/between}
{notbetween name="number" value="1,10"}number不等于1 到 10 之间的任意一个值
{/notbetween}{present name="number"}number已经定义
{/present}
{notpresent name="n"}n还没有定义
{/notpresent}{empty name="string"}name为空值
{/empty}
{notempty name="string"}name有值
{/notempty}{defined name="NAME"}NAME常量已经定义
{/defined}
{notdefined name="NAME"}NAME常量未定义
{/notdefined}

条件标签,可以增加else标签

{in name="number" value="99,100,101"}number等于99,100,101任意一个值
{else/}number不等于99,100,101任意一个值
{/in}
2. 比较标签

ThinkPHP视图

  • app/controller/index.php
<?phpnamespace app\\controller;use think\\facade\\View;class Index
{public function index(){View::assign("number",100);View::assign("string","毫升的");return View::fetch();
}
}
  • app/view/index/index.html
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>ThinkPHP6</title></head><body>{eq name="number" value="100"}number 等于 100
{/eq}{neq name="number" value="101"}number 不等于 101
{/neq}{gt name="number" value="33"}number 大于 33
{/gt}{egt name="number" value="100"}number 大于等于 100
{/egt}{lt name="number" value="200"}number 小于 200
{/lt}{elt name="number" value="100"}number 小于等于 100
{/elt}</body>
</html>
3. 循环标签

ThinkPHP视图

  • app/view/index/index.html
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>ThinkPHP6</title></head><body>{for start="1" end="50" step="5" name="i"}{$i}<br/>
{/for}</body>
</html>
4. 杂项标签

ThinkPHP视图

  • app/view/index/index.html
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>ThinkPHP6</title></head><body>{literal}{$name} 这里$name不会被当作变量,而是普通字符
{/literal}{php}echo 'asd';
{/php}</body>
</html>

总结

语法与PHP语法差不多,注意标签都是等对出现的,注意