Function Coldfusion检查函数是否存在

Function Coldfusion检查函数是否存在,function,coldfusion,Function,Coldfusion,您好,有没有办法检查coldfusion中是否存在函数。它抛出了一个未定义的错误函数我相信已定义('functionname')有效。因此,您可以: <cfif isDefined('functionname')> <cfset functionname() /> </cfif> 或 您是在谈论ColdFusion内置函数、UDF还是CFC方法?如果函数不存在,则不应在代码中调用该函数。。。这就是为什么我们需要查看代码和错误消息。通常(尽管不总是)

您好,有没有办法检查coldfusion中是否存在函数。它抛出了一个未定义的错误函数

我相信
已定义('functionname')
有效。因此,您可以:

<cfif isDefined('functionname')>
    <cfset functionname() />
</cfif>



您是在谈论ColdFusion内置函数、UDF还是CFC方法?如果函数不存在,则不应在代码中调用该函数。。。这就是为什么我们需要查看代码和错误消息。通常(尽管不总是)你所描述的不应该发生。如果是这样,最好找出原因并修复它,而不是应用一个带-AID。上面的代码检查不同范围内指定的变量名(不是特定函数)的存在。您无法确定指定名称的函数是否基于它而存在。如果在其他作用域中存在与函数(您正在检查)同名的变量,则上述技巧将失败。所以要小心。这是真的,但是如果你在编写代码时,你正在与函数名共享变量名,并且还需要测试它们的存在,祝你好运。谢谢你澄清这一点。所有这些只是测试是否存在具有该名称的项。它可以是函数、对象、查询或任何其他类型。如果对象尚未实例化,则可以使用GetComponentMetadata提供组件的路径,例如:
methods=GetComponentMetadata('testCfc')。函数;WriteDump(YesNoFormat(ArrayFind(方法,函数(f){return f.name eq'testFunction';}))isCustomFunction()是否可以作为确定某个对象是否为函数的方法?为了更好地确定,我编写了一个TypeOf UDF来尝试识别任何CF对象的类型。
<cfif structKeyExists(obj,'functionname')>
  <cfset obj.functionname() />
</cfif>
<cfif isDefined('obj.functionname')>
  <cfset obj.functionname() />
</cfif>