ThinkPHP 5 中的模板中内置了 switch 标签用来进行条件判断,以下是 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}

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

简洁的用法

{switch $User.userId}
    {case $adminId}admin{/case}
    {case $memberId}member{/case}
{/switch}