You create most ColdFusion variables by assigning them values. (You must use the ArrayNew function to create arrays.) Most commonly, you create variables by using the cfset tag. You can also use the cfparam tag, and assignment statements in CFScript. Tags that create data objects also create variables. For example, the cfquery tag creates a query object variable.
ColdFusion automatically creates some variables that provide information about the results of certain tags or operations. ColdFusion also automatically generates variables in certain scopes, such as Client and Server. For information on these special variables, see Reserved Words and Variables in the CFML Reference and the documentation of the CFML tags that create these variables.
ColdFusion generates an error when it tries to use a variable before it is created. This can happen, for example, when processing data from an incompletely filled form. To prevent such errors, test for the variable's existence before you use it. For more information on testing for variable existence, see Ensuring variable existence.
For more information on how to create variables, see Creating and using variables in scopes in the About scopes.
ColdFusion variable names, including form field names and custom function and ColdFusion component argument names, must conform to Java naming rules and the following guidelines:
- A variable name must begin with a letter, underscore, or Unicode currency symbol.
- The initial character can by followed by any number of letters, numbers, underscore characters, and Unicode currency symbols.
- A variable name cannot contain spaces.
- A query result is a type of variable, so it overwrites a local variable with the same name.
- ColdFusion variables are not case sensitive. However, consistent capitalization makes the code easier to read.
- When creating a form with fields that are used in a query, match form field names with the corresponding database field names.
- Periods separate the components of structure or object names. They also separate a variable scope from the variable name. You cannot use periods in simple variable names, with the exception of variables in the Cookie and Client scopes. For more information on using periods, see Using periods in variable references.
The following rule applies to variable names, but does not apply to form field and argument names:
Prefix each variable's name with its scope. Although some ColdFusion programmers do not use the Variables prefix for local variable names, use prefixes for all other scopes. Using scope prefixes makes variable names clearer and increases code efficiency. In many cases, you must prefix the scope. For more information, see About scopes.
In some cases, when you use an existing variable name, you must enclose it with number signs (#) to allow ColdFusion to distinguish it from string or HTML text, and to insert its value, as opposed to its name. For more information, see Using number signs.
You can classify a variable using the following characteristics:
- The data type of the variable value, which indicates the kind of information a variable represents, such as number, string, or date
- The scope of the variable, which indicates where the information is available and how long the variable persists.