Railo中var和局部范围变量之间是否存在切实差异?

时间:2013-11-29 01:10:05

标签: variables coldfusion railo cfml

在我的UDF和组件中,我一直使用函数local范围而不是var关键字。我将本地范围模式设置为“始终”服务器范围,因此我没有显式使用local关键字(除非我在具有冲突字段名称的cfquery循环内)。是否有任何我应该注意的副作用,或者我是否总能将var和local视为等效?

我不关心这是好的编程习惯还是向后兼容或好的风格或其他“非有形”的原因。我特别询问它是否会影响性能或内存使用或线程安全或其他对应用程序的影响。

我在应用程序和会话等共享作用域中缓存了许多函数和组件,所以我特别好奇这是否会暴露通常看不到的差异。我记得当我这样做时,CFMX6.1曾经像疯了一样泄漏内存,但我没有注意到在Railo下有任何类似的效果。

这个问题与Railo 3.3和4.0+有关,因为我有不同的版本在运行。

1 个答案:

答案 0 :(得分:3)

它们实现的可能性不大。但是,只要您通过使用var或local scope确保您的局部变量没有泄漏出您的函数,那么您就可以了。任何性能上的差异都可以忽略不计,因为不值得关注自己。我还想补充一点,根据我的经验,Railo是一个非常好的产品,所以如果这两种方法都存在内存问题,我会非常惊讶。