Loops 是否有一个“问题”;“循环”;ColdFusion中的范围?

Loops 是否有一个“问题”;“循环”;ColdFusion中的范围?,loops,coldfusion,scope,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 loca

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

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

或者,您可以简单地清除本地设置,如中所示:

<cfset structClear(local)/>


local当然是函数中的一个作用域——您是在这里使用它的吗?是否有一个具有多个循环的函数?

没有循环作用域。从您发布的代码中,可以使用变量local.fields和local.i。就local.passedFirst而言,StructDelete命令可能会起作用。我假设他在一个函数中,因此使用了local。不?没错,我在一个函数中。嘿@Mickelain,有这样的问题,你自己尝试一下并找出答案很容易,不是吗?你清楚地理解了你要问的原则,所以这就像四行代码来测试…?@AdamCameron你介意在第一句话中澄清你所说的“it”是什么意思吗?由于缺乏测试或研究,我没有提出我的问题;我测试了可能有效的范围,并研究了我可能不知道的范围。我只是不知道CF中是否存在这种作用域(因为它隐式地存在于其他语言中)。感谢您告诉我如何从本地清除变量;这似乎是我所要求的最相关的解决方案。你在标题中也回答了我的问题,所以我接受了你的回答。
<cfset structClear(local)/>