関数の引数で、オブジェクト リテラルで CF のローカル スコープを使用すると、奇妙な動作が見られます。ただし、ループ内で実行された場合のみ...
コード例:
<cffunction name="f">
<cfoutput>
<cfset LOCAL.foo = 123 />
<!--- Works fine --->
#serializeJSON({blah = LOCAL.foo})#
<!--- Works fine --->
<cfloop from=1 to=1 index="i">
<cfset bar = {blah = LOCAL.foo} />
#serializeJSON(bar)#
</cfloop>
<!--- Element FOO is undefined in LOCAL --->
<cfloop from=1 to=1 index="i">
#serializeJSON({blah = LOCAL.foo})#
</cfloop>
</cfoutput>
</cffunction>
<cfset f() />
PS:serializeJSON()
は単なる例です。これは、引数の 1 つが構造体である、テストしたすべての関数で発生しています。