- 比较标签:
- eq:等于 heq:恒等于 gt:大于 lt:小于 (前面加上n则为否,如neq表示不等于)
使用方法:{gt name="name" value="5"}value{/gt} ->当name的值大于5时就输出
还可以支持对变量使用函数 当vo对象的属性值的字符串长度等于5就输出:{eq name="vo.name|strlen" value="5"}{$vo.name}{/eq}
举例:先在控制器中分配数据
然后在模板中使用标签
- eq:等于 heq:恒等于 gt:大于 lt:小于 (前面加上n则为否,如neq表示不等于)
-
定义标签:
-
ASSIGN标签用于在模板文件中定义变量
{assign name='gender' value="female"} {$gender} //注意输出变量的方法,怎么老记不住
name属性支持系统变量,下例表示在模板中给
$_GET['id']
赋值了123
{assign name="Think.get.id" value="123" /}
-
define标签用于在模板中定义常量
{define name='GENDER' value="female"} {$Think.const.GENDER} //这是输出常量的方式 或者: {define name='NAME' value="yolo_bean"} {:NAME} //如果模板中有{:NAME}解析出来就是:<?php echo NAME;?>
-
-
条件判断
-
switch标签
{switch name="data.age"} {case value="22"}你今年22岁{/case} {case value="23"}你今年23岁{/case} {default}我不知道你几岁呀 {/switch}
简洁的用法{switch $User.userId}
{case $adminId}admin{/case}
{case $memberId}member{/case}
{/switch}
Case标签还有一个break属性,表示是否需要break,默认是会自动添加break,如果不要break,可以使用:
{case value="1" break="0"}admin{/case}
对于case的value属性可以支持多个条件的判断,使用”|”进行分割,下例表示type等于jpg或gif则返回正确
{switch name="type"}
{case value="jpg|gif"}正确的图片格式{/case}
{default}非法图片格式
{/switch}*abs()返回绝对值
-
if标签
{if condition="$data.type eq 'gif'"} 这是gif图片 {elseif condition="$data.type eq 'jpg'"} 这是jpg图片 {else} 我不知道这是什么格式的文件 {/if} 另外我们可以在condition属性里面使用php代码 {if condition="strtoupper($user['name']) neq 'THINKPHP'"}ThinkPHP {else /} other Framework {/if}
*点语法:$user.name 会自动判断是对象还是数组 ,如果知道是对象,则应该使用对象语法(冒号):$user:name
-
范围判断:范围判断标签包括in notin between notbetween四个标签,都用于判断变量是否中某个范围。
{between name="id" value="1,10"} 输出内容1 {else/} 输出内容2 {/between}
-
empty判断是否为空(notempty)
{empty name="name"} name为空 {else /} name不为空 {/empty}
-
defined标签用于判断某个常量是否有定义(notdefined)
{defined name="NAME"} NAME常量已经定义 {else /} NAME常量未定义 {/defined}
-
-
volist循环输出标签
{volist name="list" id="vo"} {$vo.id}:{$vo.name}<br/> {/volist}
foreach标签类似与volist标签,只是更加简单,没有太多额外的属性,最简单的用法是:
{foreach $list as $vo} {$vo.id}:{$vo.name} {/foreach}
for标签
{for start="1" end="100"} {$i} {/for} 解析后的代码是 for ($i=1;$i<100;$i+=1){ echo $i; }
-