Tests for a parameter's existence, tests its data type, and provides a default value if one is not assigned.
<cfparam name = "param_name" type = "data_type"> default = "value">
cfcookie, cfregistry, cfsavecontent, cfschedule, cfset
| Attribute |
Description |
|---|---|
| name |
The name of the parameter to test (such as "Client.Email " or "Cookie.BackgroundColor "). If you omit the DEFAULT attribute, an error occurs if the specified parameter does not exist. |
| type |
Optional. The type of parameter that is required. The default is "any. " Valid types are:
|
| default |
Optional. Default value to set the parameter to if it does not exist. |
There are three ways to use cfparam:
cfparam with only the name attribute to test that a required variable exists. If the variable does not exist, ColdFusion Server stops processing the page and returns an error.
cfparam with the name and type attributes to test that a required variable exists, and that it is of the specified type. If the variable of the specified type does not exist ColdFusion returns an error. cfparam with the name and default attributes to test for the existence of an optional variable. If the variable exists, processing continues and the value is not changed. If the variable does not exist, it is created and set to the value of the default attribute.<!--- This example shows how cfparam operates --->
<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>
<html>
<head>
<title>
cfparam Example
</title>
</head>
<body bgcolor = silver>
<H3>cfparam Example</H3>
<P>cfparam is used to set default values so that
the developer does not must 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>
</body>
</html>