Over the past few days I've had multiple people ask me the same question - and that means one thing to me... blog post!

The question these people were asking was the same - I know how to write a UDF, but not sure how to actually use it on a page? By that they didn't mean the "function" syntax (x = foo()), but how to include the UDF so that it could be used on a page.

The answer is simple once you realize that a UDF is nothing more than another kind of ColdFusion variable. Consider this code:

<cfoutput> #x# </cfoutput>

What do you have to do to make this not throw an error? There are multiple ways to handle this. First, define it on the page:

<cfset x = "DJ Jazzy Jeff and the Fresh Prince"> <cfoutput>#x#</cfoutput>

Another way:

<cfinclude template="thisiswherexismade.cfm"> <cfoutput>#x#</cfoutput>

There are other ways of course, but you get the idea. So to use a UDF you follow the same rules. Here are two more examples using the same format as above:

<cfscript> function cic() { return "monkey"; } </cfscript> <cfoutput>#cic()#</cfoutput>

And then the cfinclude version:

<cfinclude template="filewithcfcUDFinit.cfm"> <cfoutput>#cic()#</cfoutput>

Just like other variables, UDFs can be placed in the shared scopes. You can't do it directly though but rather must reassign:

<cfscript> function dharma() { return "swan"; } request.dharma = dharma; </cfscript>

<cfoutput>#request.dharma()#</cfoutput>