Creates simple and compound conditional statements in CFML. Tests an expression, variable, function return value, or string. Used, optionally, with the cfelse and cfelseif tags, which are also described in this section.


Flow-control tags


<cfif expression>
  HTML and CFML tags
<cfelseif expression>
  HTML and CFML tags 
  HTML and CFML tags

See also

cfabort, cfbreak, cfexecute, cfexit, cflocation, cfloop, cfswitch, cfthrow, cftry


When testing the return value of a function that returns a Boolean, you do not have to define the True condition explicitly. This example uses the IsArray function:

<cfif IsArray(myarray)>

If successful, IsArray evaluates to Yes, the string equivalent of the Boolean True. This is preferred over explicitly defining the True condition this way:

<cfif IsArray(myarray) IS True>

For example:

<cfif "11/23/1998 " GT "11/15/1998">

This switch is set on the ColdFusion Administrator Server Settings page. For more information, see Administering ColdFusion MX.

This tag requires an end tag.


In this example, variables are shown within pound signs. This is not required.

<!--- This example shows the interaction of cfif, cfelse, and cfelseif --->
<!----- first, perform a query to get some data -----> 
<cfquery name="getCenters" datasource="cfsnippets"> 
  SELECT Center_ID, Name, Address1, Address2, City, State, Country, 
    PostalCode, Phone, Contact 
  FROM Centers 
  ORDER by City, State, Name 
<p>CFIF gives us the ability to perform conditional logic based on a condition 
or set of conditions. 
<p>For example, we can output the list of Centers from the snippets datasource 
by group and only display them <b>IF</b> City = San Diego. 
<!---- use CFIF to test a condition when outputting a query -----> 
<p>The following centers are in San Diego: 
<cfoutput query="getCenters"> 
    <cfif Trim(City) is "San Diego"> 
      <br><b>Name/Address:</b>#Name#, #Address1#, #City#, #State#
      <br><b>Contact:</b> #Contact#
<p>If we would like more than one condition to be the case, we can ask for 
a list of the centers in San Diego <b>OR</b> Santa Ana. If the center 
does not follow this condition, we can use CFELSE to show only 
the names and cities of the other centers. 
<p>Notice how a nested CFIF is used to specify the location of 
the featured site (Santa Ana or San Diego).
<!----- use CFIF to specify a conditional choice for multiple options; 
also note the nested CFIF ---> 
<p>Complete information is shown for centers in San Diego or Santa Ana. 
All other centers are listed in italics: 
<cfoutput query="getCenters"> 
  <cfif Trim(City) is "San Diego" OR Trim(City) is "Santa Ana"> 
    <h4>Featured Center in 
      <cfif Trim(City) is "San Diego"> 
        San Diego 
        Santa Ana 
      </h4> <b>Name/Address:</b>#Name#, #Address1#, #City#, #State#
      <br><b>Contact:</b> #Contact#<br> 
    <br><i>#Name#, #City#</i> 
<p>Finally, we can use CFELSEIF to cycle through a number of conditions and 
produce varying output. Note that you can use CFCASE and CFSWITCH for a more
elegant representation of this behavior. 
<p> <!------- use CFIF in conjunction with CFELSEIF to specify more than one 
branch in a conditional situation ---> 
<cfoutput query="getCenters"> 
  <cfif Trim(City) is "San Diego" OR Trim(City) is "Santa Ana"> 
    <br><i>#Name#, #City#</i> (this one is in 
        <cfif Trim(City) is "San Diego">San Diego
        <cfelse>Santa Ana
      <cfelseif Trim(City) is "San Francisco"> 
        <br><i>#Name#, #City#</i> (this one is in San Francisco) 
      <cfelseif Trim(City) is "Suisun"> 
        <br><i>#Name#, #City#</i> (this one is in Suisun) 
      <cfelse> <br><i>#Name#</i> 
        <b>Not in a city we track</b>