cfswitch

説明

渡された式を評価し、式の結果にマッチする cfcase タグに制御権を渡します。オプションで、cfdefaultcase タグをコーディングすることもできます。一致する cfcase タグの値がなければ、このタグに制御権が渡されます。

シンタックス

<cfswitch  
    expression = "expression"> 
        one or more cfcase tags 
        zero or one cfdefaultcase tags 
</cfswitch>

関連項目

cfcasecfdefaultcasecfabortcfloopcfbreakcfexecutecfexitcfifcflocationcfrethrowcfthrowcftry、『ColdFusion アプリケーションの開発』のcfswitch, cfcase, and cfdefaultcase

履歴

ColdFusion 8: <cfcase> の値を解析する方法が変更されました。以前は、数値の日付が設定された <cfcase> タグからは期待どおりの結果が返されませんでした。たとえば、<cfcase value="00"><cfcase value="0A"> は両方とも 0 と評価されていました。"0A" という値は、日付として処理されて、12/30/1899 から 0 日に変換されていました。"00" という値も 0 という値に評価されていました。このため、「CFCASE タグ用のコンテキスト検証エラーです。CFSWITCH には、値 "0.0" 用の重複した CFCASE があります。」という例外が発生していました。現在、<cfswitch> タグは期待どおりの結果を返します。

ColdFusion MX: cfdefaultcase タグの配置の必要条件が変更されました。cfdefaultcase タグを cfswitch ステートメント内の任意の場所に配置できるようになりました。最後の項目にする必要はありません。

属性

属性

必須 / オプション

デフォルト

説明

expression

必須

 

スカラー値を生成する ColdFusion 式です。ColdFusion により、整数、実数、ブール値、および日付が数値に変換されます。たとえば、true、1、1.0 はすべて同じです。

使用方法

このタグには終了タグが必要です。このタグ内のすべてのコードは cfcase または cfdefaultcase タグで囲む必要があります。そうでない場合、エラーが発生します。

このタグの後には、cfcase タグを少なくとも 1 つ指定します。オプションで、cfdefaultcase タグを指定することもできます。このタグを使用すると、cfcase タグおよび cfdefaultcase タグから一致する代替タグを選択してそのタグにジャンプし、cfcase の開始タグと終了タグの間にあるコードを実行できます。

cfswitch タグを使用すれば、一連の cfif タグや cfelseif タグを使用するよりもパフォーマンスが良くなり、コードも読みやすくなります。

<!---  
    This example shows the use of cfswitch and cfcase to  
    exercise a case statement in CFML.  
---> 
<cfquery name = "GetEmployees" dataSource = "cfdocexamples"> 
    SELECT Emp_ID, FirstName, LastName, EMail, Phone, Department 
    FROM Employees 
</cfquery> 
 
<h3>cfswitch Example</h3> 
<!--- By outputting the query and using cfswitch, we classify the  
    output without using a cfloop construct. ---> 
<p>Each time the case is fulfilled, the specific information is printed;  
if the case is not fulfilled, the default case is output </p>  
<cfoutput query="GetEmployees">  
<cfswitch expression="#Trim(Department)#">  
    <cfcase value="Sales">  
        #FirstName# #LastName# is in <b>sales</b><br><br>  
    </cfcase>  
    <cfcase value="Accounting">  
        #FirstName# #LastName# is in <b>accounting</b><br><br>  
    </cfcase> <cfcase value="Administration">  
        #FirstName# #LastName# is in <b>administration</b><br><br>  
    </cfcase>  
    <cfdefaultcase>  
        #FirstName# #LastName# is not in Sales, Accounting, or 
            Administration.<br><br> 
    </cfdefaultcase>  
</cfswitch>  
</cfoutput>