Calling User-Defined Functions

Regardless of whether you are dealing with a tag- or script-based UDF, you call it the same way you do any other CFML function—within a cfoutput block, within a cfset tag, in any tag attribute, and within CFScript code:

<cfoutput>
  #MyFunction("test", 12)#
</cfoutput>
   
<cfset x = MyFunction( )>
   
<cfmytag value="#MyFunction('test')#">
   
<cfscript>
  x = MyFunction(MyOtherFunction( ));
</cfscript>

The simplest way to call a UDF is to define it, then call it in the same template. A function defined in the template in which it is called may be defined anywhere on the page, including after it has already been referenced (ColdFusion parses the entire page before processing the instructions). If you use this method, you should define all functions at the top of the page for readability and consistency. Using one of the Mean( ) functions we created, you can define it inline and call it like this:

<!--- // Mean(values [, delimiter])
      // Returns the mean (average) value of a list of delimited values.
--->
<cffunction name="Mean" returntype="Numeric" output="No">
  <cfargument name="Values" type="String" required="Yes">
  <cfargument name="Delimiter" type="String" required="No" default=",">
  
  <cfreturn ArrayAvg(ListToArray(Arguments.Values, Arguments.Delimiter))>
</cffunction>
   
<cfset MyValues="1|2|3|4|5|6|7|8|9|10">
   
<cfoutput>
The mean is: #Mean(MyValues, "|")#
</cfoutput>

Notice that when we call the Mean( ) function, we call it with two arguments. This is known as positional ...

Get Programming ColdFusion MX, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.