tp5渲染判断if_条件判断·ThinkPHP5.0完全开发⼿册·看云## SWITCH标签
⽤法:
~~~
{switch name="变量" }
{case value="值1" break="0或1"}输出内容1{/case}
{case value="值2"}输出内容2{/case}
{default /}默认情况
{/switch}
~~~
使⽤⽅法如下:
~~~
{switch name="User.level"}
{case value="1"}value1{/case}
{case value="2"}value2{/case}
{default /}default
{/switch}
~~~
其中name属性可以使⽤函数以及系统变量,例如:
~~~
{switch name="userId|abs"}
{case value="1"}admin{/case}
{default /}default
{/switch}
~~~
对于case的value属性可以⽀持多个条件的判断,使⽤”|”进⾏分割,例如:
~~~
{switch name="pe"}
{case value="gif|png|jpg"}图像格式{/case}
{default /}其他格式
{/switch}
~~~
表⽰如果$_GET["type"] 是gif、png或者jpg的话,就判断为图像格式。
Case标签还有⼀个break属性,表⽰是否需要break,默认是会⾃动添加break,如果不要break,可以使⽤:
~~~
{switch name="userId|abs"}
{case value="1" break="0"}admin{/case}
{case value="2"}admin{/case}
{default /}default
{/switch}
~~~
也可以对case的value属性使⽤变量,例如:
~~~
{switch name="User.userId"}
{case value="$adminId"}admin{/case}
{case value="$memberId"}member{/case}
{default /}default
{/switch}
~~~
> 使⽤变量⽅式的情况下,不再⽀持多个条件的同时判断。
简洁的⽤法
~~~
{switch $User.userId}
{case $adminId}admin{/case}
{case $memberId}member{/case}
{/switch}
~
~~
## IF标签
⽤法⽰例:
~~~
{if condition="($name == 1) OR ($name > 100) "} value1
{elseif condition="$name eq 2"/}value2
{else /} value3
{/if}
~~~
除此之外,我们可以在condition属性⾥⾯使⽤php代码,例如:
~~~
{if condition="strtoupper($user['name']) neq 'THINKPHP'"}ThinkPHP
{else /} other Framework
{/if}
~~~
condition属性可以⽀持点语法和对象语法,例如: ⾃动判断user变量是数组还是对象
~~~
{if condition="$user.name neq 'ThinkPHP'"}ThinkPHP
{else /} other Framework
{/if}
~~~
或者知道user变量是对象
~
~~
{if condition="$user:name neq 'ThinkPHP'"}ThinkPHP
{else /} other Framework
{/if}
~~~
由于if标签的condition属性⾥⾯基本上使⽤的是php语法,尽可能使⽤**判断标签和Switch标签**会更加简洁,原则上来说,能够⽤switch 和⽐较标签解决的尽量不⽤if标签完成。因为switch和⽐较标签可以使⽤变量调节器和系统变量。如果某些特殊的要求下⾯,IF标签仍然⽆法满⾜要求的话,可以使⽤原⽣php代码或者PHP标签来直接书写代码。
简洁的⽤法
~~~
{if condition="表达式"}
{if (表达式)}
{if 表达式}
~~~
这三种写法结果是⼀样的
## 范围判断switch case判断字符串
范围判断标签包括in notin between notbetween四个标签,都⽤于判断变量是否中某个范围。
## IN和NOTIN
⽤法: 假设我们中控制器中给id赋值为1:
~~~
$id = 1;
$this->assign('id',$id);
~
~~
我们可以使⽤in标签来判断模板变量是否在某个范围内,例如:
~~~
{in name="id" value="1,2,3"}
id在范围内
{/in}
~~~
最后会输出:`id在范围内`。
如果判断不在某个范围内,可以使⽤notin标签:
~~~
{notin name="id" value="1,2,3"}
id不在范围内
{/notin}
~~~
最后会输出:`id不在范围内`。
可以把上⾯两个标签合并成为:
~~~
{in name="id" value="1,2,3"}
id在范围内
{else/}
id不在范围内
{/in}
~
~~
name属性还可以⽀持直接判断系统变量,例如:
~~~
{in name="id" value="1,2,3"}
$_GET['id'] 在范围内
{/in}
~~~
> 更多的系统变量⽤法可以参考[系统变量](125004)部分。value属性也可以使⽤变量,例如:
~~~
{in name="id" value="$range"}
id在范围内
{/in}
~~~
$range变量可以是数组,也可以是以逗号分隔的字符串。
value属性还可以使⽤系统变量,例如:
~~~
{in name="id" value="$Think.post.ids"}
id在范围内
{/in}
~~~
## BETWEEN 和 NOTBETWEEN
可以使⽤between标签来判断变量是否在某个区间范围内,可以使⽤:
~
~~
{between name="id" value="1,10"}
输出内容1
{/between}
~~~
同样,也可以使⽤notbetween标签来判断变量不在某个范围内:
~~~
{notbetween name="id" value="1,10"}
输出内容2
{/notbetween}
~~~
也可以使⽤else标签把两个⽤法合并,例如:
~~~
{between name="id" value="1,10"}
输出内容1
{else/}
输出内容2
{/between}
~~~
当使⽤between标签的时候,value只需要⼀个区间范围,也就是只⽀持两个值,后⾯的值⽆效,例如~~~
{between name="id" value="1,3,10"}
输出内容1
{/between}
~~~
实际判断的范围区间是`1~3`,⽽不是`1~10`,也可以⽀持字符串判断,例如:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论