Evaluates a string value to determine whether the variable named in it exists.
isDefined(variable_name)
→ returns boolean
myVar
, arguments.myArg
, myStruct.key
). Square bracket notation to reference array elements or struct keys is not supported.
Checking for the existence of a form
variable.
<cfif isDefined("form.submit")>...</cfif>
Beware of scope evaluation order when checking for an unscoped variable name.
url.foo = "url.foo" ; form.foo = "form.foo"; writeoutput("Is 'foo' defined? " & isDefined("foo")); writeoutput(isDefined("foo") ? " (" & foo & ")" : "");
Expected Result: Is 'foo' defined? YES (url.foo)
Potentially unexpected behavior when checking for a dot-notation variable containing a scope name.
local["form.submit"] = "local['form.submit']" ; form.submit = "form.submit"; writeoutput("Is 'form.submit' defined?" & isDefined("form.submit")); writeoutput(isDefined("form.submit") ? " (" & form.submit & ")" : ""); writeoutput("<br>"); writeoutput("Is 'submit' defined? " & isDefined("submit")); writeoutput(isDefined("submit") ? " (" & submit & ")" : "");
Expected Result: Is 'form.submit' defined? YES (local['form.submit']) Is 'submit' defined? YES(form.submit)
Signup for cfbreak
to stay updated on the latest news from the ColdFusion / CFML community. One email, every friday.