Coldfusion如何重复另一个案例的相同任务

时间:2015-12-02 09:58:11

标签: coldfusion switch-statement

我有一个这样的开关语句:

<cfswitch expression="#action#">
  <cfcase value="caseone">
    // do task one
  </cfcase>
  <cfcase value="casetwo">
    // repeat task one
    // Also do another task here
  </cfcase>
</cfswitch>

是否有一种简单的方法可以在case2wo中重复同样的caseone任务?(而不是从caseone复制长片代码)

3 个答案:

答案 0 :(得分:7)

你可以这样做:

创建一个函数,在那里执行任务,并从两个cfswitch案例中调用该函数,如下所示:

<cffunction name="taskOne">
    do task one
</cffunction>

<cfswitch expression="#action#">
    <cfcase value="caseone">
       <cfset taskOne() >
    </cfcase>
    <cfcase value="casetwo">
       <cfset taskOne() >
       // Also do another task here
    </cfcase>
</cfswitch>

答案 1 :(得分:1)

如果操作需要使用cfml:

,则可以使用cfscript和一个或多个函数
<cfscript>
    switch(yourExpression) {
        case "a": case "b": case "c":
            …something…
            break;
        case "d":
            …something else…
            break;
        default:
            … default behaviour goes here …
            break;
    }
</cfscript>

答案 2 :(得分:0)

使用功能是一个很好的解决方案。另一种解决方法是,如果您的代码只包含两种情况,您可以使用以下代码

// do task for caseone as well as for casetwo
<cfif action EQ "casetwo">
 // do task two alone
</cfif>

如果您需要重复代码以防万一

<cffunction name="task">
   // do task for caseone as well as for casetwo
</cffunction>

<cfset task()>
<cfif action EQ "casetwo">
    <cfset task()>
 // do task two alone
</cfif>