使用coldfusion cfswitch标签的故障排除?
有人能给我指出一个使用cfswitch的故意切换故障的习惯用法吗 我的愿望是输出类似于以下内容的“αβ”;目前,它做的是“理智”的事情,并隐式中断:使用coldfusion cfswitch标签的故障排除?,coldfusion,switch-statement,coldfusion-11,Coldfusion,Switch Statement,Coldfusion 11,有人能给我指出一个使用cfswitch的故意切换故障的习惯用法吗 我的愿望是输出类似于以下内容的“αβ”;目前,它做的是“理智”的事情,并隐式中断: <cfswitch expression="α"> <cfcase value="α"> <cfoutput>α</cfoutput> <!--- explicit fallthrough to next case here? ---> &l
<cfswitch expression="α">
<cfcase value="α">
<cfoutput>α</cfoutput>
<!--- explicit fallthrough to next case here? --->
</cfcase>
<cfcase value="β">
<cfoutput>β</cfoutput>
<!--- explicit break here? --->
</cfcase>
<cfdefaultcase>
<cfoutput>γ</cfoutput>
</cfdefaultcase>
</cfswitch>
α
β
γ
如果输入值是α
那么对β
的检查怎么可能会成功并因此输出αβ
?如果是,则不能使用基于标记的版本。文档中的这一行似乎确认始终执行中断:
“..您不必显式突破cfcase标记。”
但是,cfscript版本没有。它的行为更像java的。在匹配α
之后,它将适用于所有后续情况,除非明确告知中断
<cfscript>
switch("α") {
case "α":
WriteOutput("α");
case "β":
WriteOutput("β");
break; // explicit break
default:
WriteOutput("γ");
}
</cfscript>
开关(“α”){
案例“α”:
写输出(“α”);
案例“β”:
减记输出(“β”);
break;//显式break
违约:
减记输出(“γ”);
}
有些语言(如java)使用。“在遇到break语句之前,匹配的大小写标签之后的所有语句都按顺序执行,而不管后续大小写标签的表达式如何。”。因此,如果有一个位置合适的中断
,结果可能是“αβ”。我还发现CF允许使用分隔列表作为案例(例如,case“α,β”
),这为类似的问题提供了一些缓解,但不是这个问题(假设由于项目限制无法使用cfscript)。限制的原因是什么?如果真的需要这个功能,缺乏支持似乎是破例的一个很好的理由。。。