所以,我遇到了一个奇怪的错误,我在 CF9 中无法弄清楚。它似乎是由在函数调用内部、if
语句内部、循环内部使用结构文字引起的。删除这些变量中的任何一个,并且不会发生这种情况。
以下代码引发错误:
错误:Variable KEY is undefined.
<cffunction name="test">
<cfreturn true>
</cffunction>
<cfset local.data = { first = "asdf" }>
<cfloop list="first" index="key">
<cfif test({ name = local.data[key] })>
<cfoutput>test</cfoutput>
</cfif>
</cfloop>
为什么?如果我们将结构设置为一个变量,它就可以工作。如果我们不循环,它也可以正常工作。
<cffunction name="test">
<cfreturn true>
</cffunction>
<cfset local.data = { first = "asdf" }>
<cfset key = "first">
<cfif test({ name = local.data[key] })>
<cfoutput>test</cfoutput>
</cfif>
有什么想法吗?