DE  
説明

パラメータ内の二重引用符 (") をエスケープし、結果を二重引用符で囲みます。

 
戻り値

二重引用符で囲まれたパラメータ。内部の二重引用符はエスケープされます。

 
カテゴリ

ダイナミック評価関数

 
関数のシンタックス
DE(string)
 
関連項目

Evaluate、IIf、『ColdFusion MX 開発ガイド』の第4章の「式と # 記号の使用」

 
パラメータ

 
使用方法

DE 関数は、パラメータとして IIf 関数または Evaluate 関数に渡される文字列が評価されるのを遅らせます。

この関数を IIf 関数と共に使用すると、2 番めと 3 番めのパラメータを式として自動的に評価できるので便利です。DE 関数を使用すると、変数として出力し、式として処理する必要がない文字列パラメータの評価を避けることができます。次の例でその使い方を示します。IIF を使用して、テーブル行の背景色として白とグレーを交互に設定します。また、DE 関数を使用して、ColdFusion で色の文字列が評価されないようにします。

<cfoutput>
<table border="1" cellpadding="3">
<cfloop index="i" from="1" to="10">
   <tr bgcolor="#IIF( i mod 2 eq 0, DE("white"), DE("gray") )#">
      <td>
         hello #i#
      </td>
   </tr>
</cfloop>
</table>
</cfoutput>

DE 関数は、シャープ記号 (#) で囲まれた変数名の評価は遅らせません。ColdFusion 関数は、DE 関数が存在するかどうかに関係なく、変数を評価します。

次の例では、DE 関数とシャープ記号を一緒に使用する方法、およびこの関数を IIF 関数と共に使用する場合の動作を示します。

<cfoutput>
<cfset var1=Blue>
<cfset var2=Green>
<cfset myresult=IIf( 1 eq 2, DE(#Var1#), DE(#Var2#))>
式は #myresult#
</cfoutput>

ColdFusion は、このコードを次のように処理します。

  1. ColdFusion は、変数 var1 と var2 が文字列 Blue と Green になるように設定します。
  2. 4 行めで、ColdFusion はシャープ記号で囲まれた変数を最初に評価し、これらの変数の値を文字列 Blue と Green に置き換えます。
  3. IIF 関数は、test expression を評価して false であることを判別し、次に 3 番めのパラメータを評価します。
  4. 3 番めのパラメータは DE 関数です。この関数は文字列 Green を取り、それを引用符で囲みます。
  5. IIF 関数は文字列 "Green" (引用符を含む)を返します。
  6. cfset タグは、式の結果として "Green" を取得し、myresult 変数の値を文字列 Green に設定します。
  7. ColdFusion は、出力テキスト内の #myresult# を評価し、その値を文字列 Green に置き換え、その結果を表示します。
 
<!--- この例は、DE と Evaluate の使用方法を示しています。 --->
<h3>DE の例</h3>
<cfif IsDefined("FORM.myExpression")>
   <cftry>
      <!--- 式および式の評価の結果を表示 --->
      <cfoutput>
         <h3>式 #FORM.MyExpression# を評価</h3>
      </cfoutput>
      コード :<br>
      #Evaluate(FORM.myExpression)#
      <br><br>
      結果 :<br>
      <cfoutput>
         #Evaluate(FORM.myExpression)#
      </cfoutput>
      
      <h3>DE を使用して Evaluate 関数の評価を回避</h3>
      コード :<br>
      #Evaluate(DE(FORM.MyExpression))#<br><br>
      結果 :<br>
      <cfoutput>
         #Evaluate(DE(FORM.MyExpression))#      
      </cfoutput>
      <!--- 無効な式のコード処理エラーとその他のエラー --->
      <cfcatch type = "Any">
      <!--- 表示するメッセージ --->
         <h3><B>エラー</B>が発生しました。
         "2+2" のような簡単な式で試してください。</h3>
         <cfoutput>
         <!--- ColdFusion からの診断メッセージを表示します。 --->
            <p>#cfcatch.message#
         </cfoutput>
      </cfcatch>
   </cftry>
</cfif>

<h3>有効な ColdFusion 式を入力します。</h3>
<cfform>
   <cfinput name="myExpression" type="Text" size="40">
   <cfinput type="submit" name="submitit">
</cfform>
STRING  
評価の対象外とする文字列です。