変数url.aの値が「D1」、「D2」、「D3」の場合と、それ以外の処理がわかるようなロジックを作成
<cfparam name="url.a" default=""> <cfset tmp = ""> <cfswitch expression = "#url.a#"> <cfcase value="D1"> <cfset tmp = "D1の処理"> </cfcase> <cfcase value="D2"> <cfset tmp = "D2の処理"> </cfcase> <cfcase value="D3"> <cfset tmp = "D3の処理"> </cfcase> <cfdefaultcase> <cfset tmp = "D1,D2,D3以外の処理"> </cfdefaultcase> </cfswitch> <cfoutput> #tmp# </cfoutput>
もちろんcfif,cfelseifで書く方法もありますが、
見やすさの点ではcfswitchですね。
ちなみにcfparam関数によって変数url.aが存在しない場合は
url.aの変数を生成しdefaultの値を設定しています。
変数が存在しないことによるエラーを回避しているわけですね。
cfparamを使わない方法を使うと以下のようになります。
1)
<cfif not isDefined("url.a")> <cfset url.a = ""> </cfif>
2)
cfif not StructKeyExists(url, "a")> <cfset url.a = ""> </cfif>
やり方はいろいろありますが、簡単にできる方法を使ったほうがいいですね。
プログラムのメンテナンスも楽になります。