有没有"循环" ColdFusion中的范围?

时间:2014-11-25 16:58:14

标签: loops coldfusion scope

我正在使用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>

由于此查询在上面的循环之后总是有一行,我可以追加逗号而不是预先逗号。

1 个答案:

答案 0 :(得分:2)

您描述的没有循环范围。在进入下一个循环之前,您需要删除passFirst:

<cfset structDelete(local,"passedfirst")/>

或者你可以简单地清除本地,如:

<cfset structClear(local)/>

本地是一个功能范围当然 - 你在哪里使用它?你有一个具有多个循环的函数吗?