How do I actually use a UDF?

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> </code>

Raymond Camden's Picture

About Raymond Camden

Raymond is a developer advocate. He focuses on JavaScript, serverless and enterprise cat demos. If you like this article, please consider visiting my Amazon Wishlist or donating via PayPal to show your support. You can even buy me a coffee!

Lafayette, LA