ColdFusion 9.0 Resources |
FunctionsFunctions typically manipulate data and return a result. You can also create user-defined functions (UDFs), sometimes referred to as custom functions. Functions have the following general form: functionName([argument1[, argument2]]...) Some functions, such as the Now function take no arguments. Other functions require one or more comma-separated arguments and can have additional optional arguments. All ColdFusion functions return a value. For example, Round(3.14159) returns the value 3. Built-in functionsColdFusion built-in functions perform a variety of tasks, including, but not limited to, the following:
For alphabetical and categorized lists of ColdFusion functions, see ColdFusion Functions in the CFML Reference. You use built-in functions throughout ColdFusion pages. Built-in functions are frequently used in a cfset or cfoutput tag to prepare data for display or further use. For example, the following line displays today’s date in the format October 24, 2007: <cfoutput>#DateFormat(Now(), "mmmm d, yyyy")#</cfoutput> This code uses two nested functions. The Now function returns a ColdFusion date-time value representing the current date and time. The DateFormat function takes the value returned by the Now function and converts it to the desired string representation. Functions are also valuable in CFScript scripts. ColdFusion does not support ColdFusion tags in CFScript, so you must use functions to access ColdFusion functionality in scripts. Implicit Get and Set FunctionsColdFusion components support private properties with public setter and getter methods. This behavior supports object-oriented programming by letting you hide component properties from direct access. By default, properties that you specify by using the <cfproperty> tag have implicit setPropertyName and getPropertyName methods that access the PropertyName property in the CFC variables scope. Use the following code, for example, to set and get the MyProp property of myCFC component: myCFC.setMyProp(27); theProp = myCFC.getMyProp(); Features of properties with setter and getter methods include the following:
Validate and validateparams attributesThe validate attribute available with <cfproperty> takes the validator to be used for validating data when implicit setter for this property is called. It takes the following validators:
The validateparams attribute available with <cfproperty> takes the parameters required by the validator specified in the validate attribute. This should be specified in the implicit struct notation.
For example, the following code sets the validators for e-mail, zipcode, and age of an employee. Note: For age, validate checks if the value is
an integer and validateparams checks the range
of the value supplied.
<!---Setting validators for an employee's e-mail, age, and zipcode---> <cfcomponent> <cfproperty name="mail" validate="email"> <cfproperty name="zip" validate="zipcode"> <cfproperty name="age" validate="integer" validateparams="{min=18,max=60}"> </cfcomponent> User-defined functionsYou can write your own functions, user-defined functions (UDFs). You can use these functions in ColdFusion expressions or in CFScript. You can call a user-defined function anywhere you can use a built-in CFML function. You create UDFs using the cffunction tag or the cfscriptfunction statement. UDFs that you create using the cffunction tag can include ColdFusion tags and functions. UDFs that you create in CFScript can only include functions. You can create stand-alone UDFs or encapsulate them in a ColdFusion component. User-defined functions let you encapsulate logic and operations that you use frequently in a single unit. This way, you can write the code once and use it multiple times. UDFs ensure consistency of coding and enable you to structure your CFML more efficiently. Typical user-defined functions include mathematical routines, such as a function to calculate the logarithm of a number; string manipulation routines, such as a function to convert a numeric monetary value to a string such as “two dollars and three cents”; and can even include encryption and decryption routines. Note: The Common Function Library Project at www.cflib.org includes
a number of free libraries of user-defined functions.
For more information on user-defined functions, see Writing and Calling User-Defined Functions. |