我有一个这样的开关语句:
<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复制长片代码)
答案 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>