cfparam

Tests for a parameter's existence, tests its data type, and, if a default value is not assigned, optionally provides one.

Variable manipulation tags

<cfparam 
name = "param_name"
type = "data_type"
default = "value">

cfcookie, cfregistry, cfsavecontent, cfschedule, cfset

Attribute Req/Opt Default Description

name

Required

 

Name of parameter to test (such as "Client.Email " or "Cookie.BackgroundColor "). If omitted, and if the parameter does not exist, an error is thrown.

type

Optional

any

The parameter data type:

  • any: any type of value
  • array: an array value
  • binary: a binary value
  • boolean: a Boolean value
  • date: a date-time value
  • guid: a Univerally Unique Identifier that follows the Microsoft/DCE standard, as follows:
    "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" where `X' is a hexadecimal number.
  • numeric: a numeric value
  • query: a query object
  • string: a string value or single character
  • struct: a structure
  • UUID: a ColdFusion Universally Unique Identifier, formatted `XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXX', where `X' is a hexadecimal number. See CreateUUID.
  • variableName: a string formatted according to ColdFusion variable naming conventions.

default

Optional

Value to set parameter to if it does not exist.

You can use this tag to make the following tests:

If you specify variableName for the returnType attribute, the parameter value must be a string that is in ColdFusion variable name format; that is, starts with a letter, underscore (_), or Unicode currency symbol, and contains letters, numbers, underscores, periods, and Unicode currency symbols, only. ColdFusion does not check whether the parameter value corresponds to an existing ColdFusion variable.

Tip: To improve performance, avoid using the cfparam tag in ColdFusion functions, including in CFC methods. Instead, place the cfparam tags in the body of the CFML pages.

<!--- This example shows how to use CFPARAM to define default values for page
   variables --------> 
<cfparam name = "storeTempVar" default = "my default value">
<cfparam name = "tempVar" default = "my default value">

<!--- check if form.tempVar was passed --->
<cfif IsDefined("form.tempVar") is "True">
   <!--- check if form.tempVar is not blank --->
   <cfif form.tempVar is not "">
      <!--- if not, set tempVar to value of form.tempVar --->
      <cfset tempVar = form.tempVar>
   </cfif>
</cfif>

<body>
<h3>cfparam Example</h3>
<p>cfparam is used to set default values so thata developer does not have to 
check for the existence of a variable using a function like IsDefined.

<p>The default value of our tempVar is 
   "<cfoutput>#StoreTempVar# </cfoutput>"

<!--- check if tempVar is still the same as StoreTempVar
and that tempVar is not blank --->
<cfif tempVar is not #StoreTempVar# 
   and tempVar is not "">
      <h3>The value of tempVar has changed: the new value is
      <cfoutput>#tempVar#</cfoutput></h3>
</cfif>

<p>
<form action = "cfparam.cfm" method = "post">
   Type in a new value for tempVar, and hit submit:<br>
   <input type = "Text" name = "tempVar">
   <input type = "Submit" name = "" value = "submit">
</form>

View comments on LiveDocs