何时在ColdFusion组件中变量范围变量?

时间:2011-03-17 14:51:22

标签: variables coldfusion components var cfc

(a)你应该在什么情况下改变范围变量?(b)你应该在ColdFusion组件中改变范围的情况是什么?

4 个答案:

答案 0 :(得分:4)

当你在多个请求中共享的CFC中实现一个函数时,你应该变量你的变量范围(即Singleton,应用程序范围内的服务CFC)

如果每次都实例化CFC,则不需要(但仍然强烈推荐)对变量进行变量范围,并且您的方法不会在同一个CFC中调用可能访问您在中定义的变量的另一个方法。调用方法。例如,您通过Web服务或ajax直接调用的远程方法,它不会调用其他使用vars的方法,这些方法不是var scope,或者是CFWheels中的Controller。

“您应该始终使用var关键字定义函数局部变量。”每个CFC变量和范围doc http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=buildingComponents_29.html

答案 1 :(得分:3)

当您不希望该变量的值受到a)访问同一实例的其他请求或b)同一实例中的其他方法的影响时,您应该变量范围变量。

Henry是一个很棒的人,但他的声明是“如果每次都实例化CFC,你就不需要对变量进行变换。”是不正确的。 :) [编辑:亨利已经编辑了他的答案] 我写了一个例子,在这篇博文中说明了这一点:

http://daveshuck.com/2006/11/28/thread-safety-example-var-scope-your-loop-index-in-coldfusion-cfcs/

你可以看到我通过在一个函数中计数并在另一个函数中倒计时创建了一个无限循环。在这种情况下,无论是单个用户还是多个用户请求相同的实例,但在单个请求中,一个函数会覆盖另一个函数中的值。

答案 2 :(得分:1)

我变量范围不是全局变量或组件成员的任何变量。您要做的最后一件事是在变量范围

中创建或覆盖全局变量

答案 3 :(得分:0)

我们将函数中的所有变量作为范围,以便它们仅保留在该函数的本地。对于组件,您可以使用变量或此范围使变量可用于组件中的任何函数。如果正确设置访问权限,“this”范围也将使变量直接可用于调用程序。