掌握Thinkphp3.2.0----内置标签
使用内置标签的时候,一定要注意闭合-----单标签自闭合,双标签对应闭合
标签的学习在于记忆和应用
一. 判断比较
1 //IF 语句的完整格式 2 <if condition="$user eq '蜡笔小新'"> 3 小新 4 <elseif condition="$user eq '黑崎一护'" /> 5 一护 6 <else /> 7 错误 8 </if>
1 //condition 条件里可以使用 PHP 函数 2 <if condition="mb_substr($user,0,3,'UTF-8') eq '蜡笔小'"> 3 //condition 条件里使用点语法,智能判断数组或对象 4 <if condition="$data.user eq '蜡笔小新'"> 5 //condition 条件里使用冒号语法,直接使用对象 6 <if condition="$data:user eq '蜡笔小新'"> 7 //condition 条件里使用系统变量 8 <if condition="$Think.get.user eq '蜡笔小新'">
switch语句
1 //name 的值和 IF 语句一样,可以是变量、数组、对象、函数或系统变量 2 <switch name="user"> 3 <case value="蜡笔小新">小新</case> 4 <case value="黑崎一护">一护</case> 5 <default />错误 6 </switch>
默认情况下,case 会自动添加 break 语句防止穿透,如果你就是想要穿透,那么可以去除 break。当然,绝大部分不需要设置 break。
1 //去除 break 2 <case value="蜡笔小新" break="0">小新</case>
比较标签,都能和else搭配
1 //eq标签 2 <eq name="user" value="1">相等<else/>不相等</eq> 3 //其他的标签和这个标题的用法基本相同不再赘述 4 //compare统一方法 5 <compare type="eq" name="user" value="1">相等<else/>不相等</compare>
范围判断标签 in、notin、between、notbetween
判断变量的标签 present -- notpresent empty -- notempty defined -- notdefined
其实都可以和else搭配使用,也就说not*没有什么作用,至少实在效果上来说
1 <present name="Think.get.user">$_GET['user']已赋值</present> 2 //判断变量是否为空,空则输出 3 <empty name="user">user 为空值</empty> 4 //判断变量是否为空,不空则输出 5 <notempty name="user">user不为空值</notempty> 6 //判断变量是否为空,组合 7 <empty name="user"> 8 user为空值 9 <else /> 10 user不为空值 11 </empty> 12 //判断变量是否为空,系统变量 13 <empty name="Think.get.user">$_GET['user']为空值</empty> 14 //判断常量是否定义,定义了输出 15 <defined name="APP_PATH">APP_PATH 常量已定义</defined> 16 //判断常量是否定义,没定义输出 17 <notdefined name="APP_PATH">APP_PATH 常量未定义</notdefined> 18 //判断常量是否定义,组合 19 <defined name="APP_PATH"> 20 APP_PATH常量已定义 21 <else /> 22 APP_PATH常量未定义 23 </defined>
二.遍历循环 Volist 标签、Foreach 标签和 For 标签
Volist 标签
基本:
<ul> <volist name="data" id="arr"> <li>{$arr.id} -- {$arr.user} -- {$arr.mail}</li> </volist> </ul>
PS:这里的 name="data"中的 data 是控制器给模版定义的数据变量,要对应;这里
的 id="arr"中的 arr 是将要遍历循环的数组名,可以自定义。
各种属性:
1 //offset 从第几条开始,起始值 0,length 共多少条 2 <volist name="data" id="arr" offset="5" length="10"> 3 <li>{$arr.id} -- {$arr.user} -- {$arr.mail}</li> 4 </volist> 5 //mod 求当前余数,当前 index 除以 2 余 1,输出偶数 6 <volist name="data" id="vo" mod="2"> 7 <eq name="mod" value="1"> 8 <li>{$vo.id} -- {$vo.user} -- {$vo.mail}</li> 9 </eq> 10 </volist> 11 //没有数据的情况下使用 empty 填充 12 <volist name="data" id="vo" empty="没有任何数据"> 13 <li>{$vo.id} -- {$vo.user} -- {$vo.mail}</li> 14 </volist> 15 //empty 属性不支持 HTML 直接输入,但可以通过变量输出 16 $this->assign('empty', '<span style="color:red">没有任何数据</span>'); 17 <volist name="data" id="vo" empty="$empty"> 18 //通过 key 输出循环遍历的变量 19 <volist name="data" id="vo" key="k"> 20 <li>{$k} -- {$vo.id} -- {$vo.user} -- {$vo.mail}</li> 21 </volist> 22 //没有指定 k,也可以用 i 变量输出 23 <li>{$i} -- {$vo.id} -- {$vo.user} -- {$vo.mail}</li> 24 //key 变量,可以直接输出索引值,从 0 开始 25 <li>{$key} -- {$vo.id} -- {$vo.user} -- {$vo.mail}</li>
foreach标签
Foreach 标签和 Volist 标签类似,只不过 Foreach 标签更加简单,没有额外属性。
//只支持 key 属性,但{$key}变量支持 <ul> <foreach name="data" item="vo"> <ul>{$vo.id} -- {$vo.user}</ul> </foreach> </ul>
for标签就更简单了
1 //从 1 到 99 循环 2 <for start="1" end="100"> 3 {$i}<br /> 4 </for> 5 //完整形式 6 <for start="1" end="100" comparison="lt" step="2" name="k"> 7 {$i}<br /> 8 </for>
除了start和end必须值,还有三个可选值。comparison是大于还是小于,默认值为lt
(<) ;name是循环变量名,默认值为i;step是步进值,默认为1。
三.其他标签
1 //在模版中定义变量, value 值可以为变量 ($user) 或系统变量 ($Think.get.user) 2 <assign name="var" value="123" /> 3 {$var} 4 //在模版中定义常量, value 值可以为变量 ($user) 或系统变量 ($Think.get.user) 5 <define name="MY_NAME" value="Lee" /> 6 {$Think.const.MY_NAME} 7 import 导入标签可以智能的导入 js 和 css 文件 8 //常规引入方法 9 <script type="text/javascript" src="__PUBLIC__/js/index.js"></script> 10 <link rel="stylesheet" type="text/css" 11 href="__PUBLIC__/css/index.css" /> 12 //使用 import 导入,js 和 css 是目录 13 <import type="js" file="js.index" /> 14 <import type="css" file="css.index" /> 15 //使用 import 导入,basepath 修改默认路径 16 <import type="js" file="js.index" basepath="./Common" /> 17 load 加载标签可以智能的加载 js 和 css 文件 18 //使用 load 加载 19 <load href="__PUBLIC__/js/index.js" /> 20 <load href="__PUBLIC__/css/index.css" /> 21 系统还提供了专用 js 和 css 标签,专门用于加载 22 //使用专用标签 23 <js href="__PUBLIC__/js/index.js" /> 24 <css href="__PUBLIC__/css/index.css" />
1 //使用 php 标签 2 <php> 3 $a = 1; 4 $b = 2; 5 echo $a + $b; 6 </php> 7 //使用 php 语法 8 <?php 9 $a = 1; 10 $b = 2; 11 echo $a + $b; 12 ?> 13 如果想原样输出标签极其内容,可以使用 literal 标签 14 //原样输出 15 <literal> 16 <php>echo 123;</php> 17 </literal>