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 は、このコードを次のように処理します。 ColdFusion は、変数 var1 と var2 が文字列 Blue と Green になるように設定します。 4 行めで、ColdFusion はシャープ記号で囲まれた変数を最初に評価し、これらの変数の値を文字列 Blue と Green に置き換えます。 IIF 関数は、test expression を評価して false であることを判別し、次に 3 番めのパラメータを評価します。 3 番めのパラメータは DE 関数です。この関数は文字列 Green を取り、それを引用符で囲みます。 IIF 関数は文字列 "Green" (引用符を含む)を返します。 cfset タグは、式の結果として "Green" を取得し、myresult 変数の値を文字列 Green に設定します。 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 |
評価の対象外とする文字列です。