Rules for function definitions
The following rules apply to functions that you define using CFScript or the
•
The function name must be unique. It must be different from any existing variable, UDF, or
built-in function name.
•
The function name must not start with the letters cf in any form. (For example,
CF_MyFunction cfmyFunction, and cfxMyFunction are not valid UDF names.)
•
You cannot redefine or overload a function. If a function definition is active, ColdFusion
generates an error if you define a second function with the same name.
•
You cannot nest function definitions; that is, you cannot define one function inside another
function definition.
•
The function can be recursive, that is, the function definition body can call the function.
•
The function does not have to return a value.
You can define a function in the following places:
•
On the page where it is called. You can even define it below the place on the page where it is
called, but this poor coding practice can result in confusing code.
•
On a page that you include using a
before the function gets called. For example, you can define all your application's functions on
a single page and place a
•
On any page that puts the function name in a scope common with the page on which you call
the function.
•
On the Application.cfm page.
For recommendations on selecting where you define functions, see the sections
Application.cfm and function include files" on page 206
on page
206.
About the Arguments scope
All function arguments exist in their own scope, the Arguments scope.
The Arguments scope exists for the life of a function call. When the function returns, the scope
and its variables are destroyed.
However, destroying the Argument scope does not destroy variables, such as structures or query
objects, that ColdFusion passes to the function by reference. The variables on the calling page
that you use as function arguments continue to exist; if the function changes the argument value,
the variable in the calling page reflects the changed value.
The Arguments scope is special, in that you can treat the scope as either an array or a structure.
This dual nature of the Arguments scope is useful because it makes it easy to use arguments in any
of the following circumstances:
•
You define the function using CFScript.
•
You define the function using the
•
You pass arguments using argument name=value format.
•
You pass arguments as values only.
•
The function takes optional, undeclared arguments.
194
Chapter 10: Writing and Calling User-Defined Functions
cfinclude
tag at the top of pages that use the functions.
cfinclude
cffunction
tag. The
tag must be executed
cfinclude
and
"Specifying the scope of a function"
tag.
tag:
cffunction
"Using
Need help?
Do you have a question about the COLDFUSION MX 61-DEVELOPING COLDFUSION MX and is the answer not in the manual?
Questions and answers