Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用coldfusion cfswitch标签的故障排除?_Coldfusion_Switch Statement_Coldfusion 11 - Fatal编程技术网

使用coldfusion 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的故意切换故障的习惯用法吗

我的愿望是输出类似于以下内容的“αβ”;目前,它做的是“理智”的事情,并隐式中断:

<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)。限制的原因是什么?如果真的需要这个功能,缺乏支持似乎是破例的一个很好的理由。。。