我的知识记录

易优EyouCMS程序中switch标签实现条件判断的使用方法及示例

一、基础用法

  • 标签名称{eyou:switch} + {eyou:case} + {eyou:default}
  • 描述:用于对某个变量进行多值匹配判断,适合多个固定值分支逻辑处理。
  • 语法格式
    
     
    html
    {eyou:switch name='变量名'} {eyou:case value='值1'}匹配值1时执行的内容{/eyou:case} {eyou:case value='值2'}匹配值2时执行的内容{/eyou:case} {eyou:default /}默认情况下的内容 {/eyou:switch}

二、属性说明

属性名 必填 说明
name 要判断的变量名(需以 $ 开头),如 $eyou.field.has_children
value 匹配的具体值,支持字符串和数字
condition 可选原生PHP语法条件判断(不常用)

三、使用示例

示例1:根据栏目子级数量显示不同提示信息


 
html
{eyou:switch name='$eyou.field.has_children'} {eyou:case value='0'}当前栏目没有子栏目{/eyou:case} {eyou:case value='1'}当前栏目有1个子栏目{/eyou:case} {eyou:case value='2'}当前栏目有2个子栏目{/eyou:case} {eyou:default /}当前栏目有多个子栏目 {/eyou:switch}
说明:根据 has_children 字段值展示不同的文案提示。

示例2:判断文档状态并输出对应标签


 
html
{eyou:switch name='$field.status'} {eyou:case value='1'}<span class="status-on">已发布</span>{/eyou:case} {eyou:case value='0'}<span class="status-off">草稿</span>{/eyou:case} {eyou:default /}<span class="status-unknown">未知状态</span> {/eyou:switch}
说明:适用于内容页或列表页中对文档状态做样式区分。

示例3:结合assign定义变量后进行判断


 
html
{eyou:assign name='user_level' value='2' /} {eyou:switch name='$user_level'} {eyou:case value='1'}普通用户{/eyou:case} {eyou:case value='2'}VIP用户{/eyou:case} {eyou:default /}游客 {/eyou:switch}
说明:先通过 assign 定义一个变量 $user_level,然后使用 switch 判断其值并输出对应身份。

四、注意事项

  • switch 更适合判断多个固定值的情况;
  • 若需要复杂条件判断(如大于、小于、区间等),建议使用 {eyou:if} 标签;
  • 每个 {eyou:case} 分支只会匹配一次,不会穿透执行后续分支;
  • name 中的变量必须以 $ 开头;
  • 支持嵌套使用,但应避免层级过深影响可读性。

五、与 if 标签对比

特性 switch标签 if标签
适用场景 多值匹配(等于判断) 条件判断(支持各种逻辑运算符)
可读性 高(选项清晰) 中(条件较多时结构较复杂)
灵活性
是否支持else ✅ 支持 {eyou:default} 默认项 ✅ 支持 {eyou:else}

标签:

更新时间:2025-05-06 10:31:16

上一篇:易优EyouCMS程序中volist标签实现数据循环输出的使用方法及示例

下一篇:易优EyouCMS程序中compare系列标签实现变量比较的使用方法及示例