Using Arguments; A User-Defined Function Example; Defining The Function Using Cfscript - MACROMEDIA COLDFUSION MX 61-DEVELOPING COLDFUSION MX Develop Manual

Developing coldfusion mx applications
Table of Contents

Advertisement

Using arguments

Function arguments can have the same names, but different values, as variables in the caller.
Avoid such uses for clarity, however.
The following rules apply to argument persistence:
Because simple variable and array arguments are passed by value, their names and values exist
only while the function executes.
Because structures, queries, and objects such as COM objects are passed by reference, the
argument name exists only while the function executes, but the underlying data persists after
the function returns and can be accessed by using the caller's variable name. The caller's
variable name and the argument name can, and should, be different.
Note: If a function must use a variable from another scope that has the same name as a function-only
variable, prefix the external variable with its scope identifier, such as Variables or Form. (However,
remember that using variables from other scopes directly in your code is often poor practice.)

A User-defined function example

The following simple function takes a principal amount, an annual percentage rate, and a loan
duration in months and returns the total amount of interest to be paid over the period. You can
optionally use the percent sign for the percentage rate, and include the dollar sign and comma
separators for the principal amount.
You could use the
<cfoutput>
Loan amount: #Form.Principal#<br>
Annual percentage rate: #Form.AnnualPercent#<br>
Loan duration: #Form.Months# months<br>
TOTAL INTEREST: #TotalInterest(Form.Principal, Form.AnnualPercent,
Form.Months)#<br>
</cfoutput>

Defining the function using CFScript

<cfscript>
function TotalInterest(principal, annualPercent, months) {
Var years = 0;
Var interestRate = 0;
Var totalInterest = 0;
principal = trim(principal);
principal = REReplace(principal,"[\$,]","","ALL");
annualPercent = Replace(annualPercent,"%","","ALL");
interestRate = annualPercent / 100;
years = months / 12;
totalInterest = principal*(((1+ interestRate)^years)-1);
Return DollarFormat(totalInterest);
}
</cfscript>
204
Chapter 10: Writing and Calling User-Defined Functions
function in a
TotalInterest
tag of a form's action page, as follows:
cfoutput

Advertisement

Table of Contents
loading

This manual is also suitable for:

Coldfusion mx

Table of Contents