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. When searchImplicitScopes is false (default on modern versions of ACF), the url and form scopes are no longer searched, so foo is not found and the result is NO.
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. When searchImplicitScopes is false (default on modern versions of ACF), the form scope is no longer searched, so Is 'submit' defined? returns NO.
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.