ThinkPHP3.2模板引擎Switch标签的使用

By | 2020年6月10日

thinkphp3.2模板引擎中由于if标签的condition属性里面基本上使用的是php语法,尽可能使用判断标签和Switch标签会更加简洁,原则上来说,能够用switch和比较标签解决的尽量不用if标签完成。因为switch和比较标签可以使用变量调节器和系统变量。

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="Think.get.userId|abs">
    <case value="1">admin</case>
    <default />default
</switch>

对于case的value属性可以支持多个条件的判断,使用”|”进行分割,例如:

<switch name="Think.get.type">
    <case value="gif|png|jpg">图像格式</case>
    <default />其他格式
</switch>

表示如果$_GET[“type”] 是gif、png或者jpg的话,就判断为图像格式。

Case标签还有一个break属性,表示是否需要break,默认是会自动添加break,如果不要break,可以使用:

<switch name="Think.get.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>

注:使用变量方式的情况下,不再支持多个条件的同时判断。

One thought on “ThinkPHP3.2模板引擎Switch标签的使用

  1. Pingback: ThinkPHP3.2模板引擎IF标签的使用 – 东升博客

发表评论

电子邮件地址不会被公开。 必填项已用*标注