194
Chapter 10: Writing and Calling User-Defined Functions
Rules for function definitions
The following rules apply to functions that you define using CFScript or the
cffunction
tag:
•
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
cfinclude
tag. The
cfinclude
tag must be executed
before the function gets called. For example, you can define all your application’s functions on
a single page and place a
cfinclude
tag at the top of pages that use the functions.
•
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
“Using
Application.cfm and function include files” on page 206
and
“Specifying the scope of a function”
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
cffunction
tag.
•
You pass arguments using argument name=value format.
•
You pass arguments as values only.
•
The function takes optional, undeclared arguments.
Содержание COLDFUSION MX 61-DEVELOPING COLDFUSION MX
Страница 1: ...Developing ColdFusion MX Applications...
Страница 22: ...22 Contents...
Страница 38: ......
Страница 52: ...52 Chapter 2 Elements of CFML...
Страница 162: ......
Страница 218: ...218 Chapter 10 Writing and Calling User Defined Functions...
Страница 250: ...250 Chapter 11 Building and Using ColdFusion Components...
Страница 264: ...264 Chapter 12 Building Custom CFXAPI Tags...
Страница 266: ......
Страница 314: ...314 Chapter 14 Handling Errors...
Страница 344: ...344 Chapter 15 Using Persistent Data and Locking...
Страница 349: ...About user security 349...
Страница 357: ...Security scenarios 357...
Страница 370: ...370 Chapter 16 Securing Applications...
Страница 388: ...388 Chapter 17 Developing Globalized Applications...
Страница 408: ...408 Chapter 18 Debugging and Troubleshooting Applications...
Страница 410: ......
Страница 426: ...426 Chapter 19 Introduction to Databases and SQL...
Страница 476: ...476 Chapter 22 Using Query of Queries...
Страница 534: ...534 Chapter 24 Building a Search Interface...
Страница 556: ...556 Chapter 25 Using Verity Search Expressions...
Страница 558: ......
Страница 582: ...582 Chapter 26 Retrieving and Formatting Data...
Страница 668: ......
Страница 734: ...734 Chapter 32 Using Web Services...
Страница 760: ...760 Chapter 33 Integrating J2EE and Java Elements in CFML Applications...
Страница 786: ...786 Chapter 34 Integrating COM and CORBA Objects in CFML Applications...
Страница 788: ......
Страница 806: ...806 Chapter 35 Sending and Receiving E Mail...