
202
Chapter 10: Writing and Calling User-Defined Functions
Using a CFML tag in a user-defined function
The most important advantage of using the
cffunction
tag over defining a function in CFScript
is that you can include CFML tags in the function. Thus, UDFs can encapsulate activities, such
as database lookups, that require ColdFusion tags. Also, you can use the
cfoutput
tag to display
output on the calling page with minimal coding.
Tip:
To improve performance, avoid using the
cfparam
tag in ColdFusion functions. Instead, use the
cfset
tag.
The following example function looks up and returns an employee’s department ID. It takes one
argument, the employee ID, and looks up the corresponding department ID in the CompanyInfo
Employee table:
<cffunction name="getDeptID" >
<cfargument name="empID" required="true" type="numeric">
<cfquery dataSource="CompanyInfo" name="deptID">
SELECT Dept_ID
FROM Employee
WHERE Emp_ID = #empID#
</cfquery>
<cfreturn deptID.Dept_ID>
</cffunction>
Using the Arguments scope in cffunction definitions
When you define a function using the
cffunction
tag, you generally refer to the arguments
directly by name if all arguments are named in the
cfargument
tags. If you do use the Arguments
scope identifier, follow the rules listed in
“About the Arguments scope” on page 194
.
Calling functions and using variables
You can call a function anywhere that you can use an expression, including in pound signs (#) in
a
cfoutput
tag, in a CFScript, or in a tag attribute value. One function can call another function,
and you can use a function as an argument to another function.
You call user-defined functions the same way you call any built-in ColdFusion functions.
Passing arguments
ColdFusion passes the following data types to the function by value:
•
Integers
•
Real numbers
•
Strings (including lists)
•
Date-time objects
•
Arrays
As a result, any changes that you make in the function to these arguments do not affect the
variable that was used to call the function, even if the calling code is on the same ColdFusion page
as the function definition.
ColdFusion passes queries, structures, and external objects such as COM objects into the
function by reference. As a result, any changes to these arguments in the function also change the
value of the variable in the calling code.
For an example of the effects of passing arguments, see
“Passing complex data” on page 210
.
Содержание 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...