我正在使用cfloop
构建SQL查询,并希望控制我的逗号。
给出如此循环:
<cfloop from="1" to="#ArrayLen(local.fields)#" index="local.i">
<cfif local.fields[local.i][1]>
-- NEXT LINE IS OF INTEREST
<cfif IsNull(local.passedFirst)> <cfset local.passedFirst = True > <cfelse> , </cfif>
#local.fields[local.i][2]# as '#local.fields[local.i][3]#'
</cfif>
</cfloop>
效果很好,但我想在退出循环时删除passedFirst
。
目前,下次使用local.passedFirst进行循环时,会记住我将其设置为True
。
所以,有一个&#34;循环&#34; ColdFusion中的范围?
编辑:我找到了与问题标题无关的解决方案
虽然没有&#34;循环&#34;在单行中使用这样的标志的范围,我发现了一个与我的问题无关的方式来构建我的SELECT
:
<cfloop from="1" to="#ArrayLen(local.fields)#" index="local.i">
<cfif local.fields[local.i][1]>
#local.fields[local.i][2]# as '#local.fields[local.i][3]#' ,
</cfif>
</cfloop>
由于此查询在上面的循环之后总是有一行,我可以追加逗号而不是预先逗号。
答案 0 :(得分:2)
您描述的没有循环范围。在进入下一个循环之前,您需要删除passFirst:
<cfset structDelete(local,"passedfirst")/>
或者你可以简单地清除本地,如:
<cfset structClear(local)/>
本地是一个功能范围当然 - 你在哪里使用它?你有一个具有多个循环的函数吗?