现在有三种方法:
如果您使用的是 ColdFusion 9.0 或更高版本,则可以使用名为 GetFunctionCalledName() 的函数来获取您正在查找的内容。
http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WS7cc222be8a31a47d-6e8b7083122cebfc8f2-8000.html
或者
使用 ColdSpring 和面向方面编程 (http://www.coldspringframework.org/coldspring/examples/quickstart/index.cfm?page=aop) 来为您处理此操作。
或者
使用 cfthrow 来生成包含所需信息的堆栈跟踪:
<cffunction name="determineFunction" output="FALSE" access="public" returntype="string" hint="" >
<cfset var functionName ="" />
<cfset var i = 0 />
<cfset var stackTraceArray = "" />
<cftry>
<cfthrow />
<cfcatch type="any">
<cfset stacktraceArray = ListToArray(Replace(cfcatch.stacktrace, "at ", " | ", "All"), "|") />
<cfloop index ="i" to="1" from="#ArrayLen(stackTraceArray)#" step="-1">
<cfif not findNoCase("runFunction", stackTraceArray[i]) or FindNoCase("determineFunction", stackTraceArray[i])>
<cfset arrayDeleteAt(stackTraceArray, i) />
</cfif>
</cfloop>
<cfset functionName =GetToken(stacktraceArray[1], 1, ".") />
<cfset functionName =GetToken(functionName, 2, "$")/>
<cfset functionName =ReplaceNoCase(functionName, "func", "", "once")/>
<cfreturn functionName />
</cfcatch>
</cftry></cffunction>
我的建议是使用getFunctionCalledName,或者如果不在CF 9 ColdSpring上,则可能会为您带来其他一些东西。