Adobe ColdFusion 8

DE

Description

Escapes any double-quotation marks in the parameter and wraps the result in double-quotation marks.

Returns

Parameter, surrounded by double-quotation marks, with any inner double-quotation marks escaped.

Category

Dynamic evaluation functions

Function syntax

DE(string)

See also

Evaluate, IIf, PrecisionEvaluate, "Using Expressions and Number Signs" in the ColdFusion Developer's Guide

Parameters

Parameter

Description

string

String to evaluate, after delay

Usage

The DE function postpones evaluation of a string that is passed as a parameter to the IIf, Evaluate, or PrecisionEvaluate functions.

This function is especially useful with the IIf function, which automatically evaluates its second and third parameters as expressions. You can use the DE function to prevent the function from evaluating a string parameter that is to be output as a variable, and should not be treated as an expression. The following example show this use; it uses IIF to alternate table-row background colors, white and gray, and uses the DE function to prevent ColdFusion from evaluating the color strings.

<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>

The DE function does not delay evaluation of variable names that are surrounded by number signs (#). The ColdFusion function evaluates the variable regardless of whether the DE function is present.

The following example shows how you can use the DE function and number signs together, and shows how the function works with an IIF function:

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

ColdFusion processes this code as follows:

  1. ColdFusion sets the variables var1 and var2 to be the strings Blue and Green.
  2. In the fourth line, ColdFusion evaluates the variables surrounded by number signs first, replacing them with the strings Blue and Green, the values of the variables.
  3. The IIF function evaluates the test expression, determines that it is False, and then evaluates the third parameter.
  4. The third parameter is a DE function, which takes the string Green and surrounds it in quotation marks
  5. The IIF function returns the string "Green", including the quotation marks.
  6. The cfset tag gets the expression result="Green", and sets the value of the myresult variable to the string Green.
  7. ColdFusion evaluates #myresult# in the output text, replaces the variable with its value, the string Green, and displays the result.

Example

<!--- This example shows the use of DE and Evaluate --->
<h3>DE Example</h3>
<cfif IsDefined("FORM.myExpression")>
    <cftry>
        <!--- Show the expression and the results of evaluating it --->
        <cfoutput>
            <h3>Evaluate the Expression #FORM.MyExpression#</h3>
        </cfoutput>
        The code:<br>
        #Evaluate(FORM.myExpression)#
        <br><br>
        The result:<br>
        <cfoutput>
            #Evaluate(FORM.myExpression)#
        </cfoutput>
        
        <h3>Use DE to prevent the Evaluate function from evaluating</h3>
        The code:<br>
        #Evaluate(DE(FORM.MyExpression))#<br><br>
        The result:<br>
        <cfoutput>
            #Evaluate(DE(FORM.MyExpression))#        
        </cfoutput>
        <!--- Error handling code for bad expressions and any other error.--->
        <cfcatch type = "Any">
        <!--- the message to display --->
            <h3>Sorry, there's been an <B>Error</B>.
            Try a simple expression, such as "2+2".</h3>
            <cfoutput>
            <!--- Display the diagnostic message from ColdFusion. --->
                <p>#cfcatch.message#
            </cfoutput>
        </cfcatch>
    </cftry>
</cfif>

<h3>Enter any valid ColdFusion expression</h3>
<cfform>
    <cfinput name="myExpression" type="Text" size="40">
    <cfinput type="submit" name="submitit">
</cfform>