variables - Railo 中的 var 和局部作用域变量之间有明显的区别吗?

标签 variables coldfusion railo cfml

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

我不关心这是否是良好的编程实践或向后兼容或良好的风格或其他“无形”原因。我具体询问它是否会影响性能、内存使用、线程安全或对应用程序的其他影响。

我在共享范围(例如应用程序和 session )中缓存了许多函数和组件,因此我特别好奇这是否会暴露通常不会看到的差异。我记得当我执行此操作时,CFMX6.1 曾经疯狂地泄漏内存,但我没有注意到 Railo 下有任何类似的效果。

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

最佳答案

它们不太可能以相同的方式实现。但是,只要您确保局部变量没有通过使用 var 或局部作用域从函数中泄漏出来,那么就没有问题。任何性能差异都可以忽略不计,不值得您担心。我还想补充一点,根据我的经验,Railo 是一款组合得非常好的产品,因此如果这两种方法中的任何一种出现内存问题,我都会感到非常惊讶。

关于variables - Railo 中的 var 和局部作用域变量之间有明显的区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20276944/

相关文章:

c# - Unity (C#) 中的继承变量问题(更改继承变量)

mysql - 使用 REGEXP 将字符串变量添加到 MySQL SELECT 时是否需要添加引号?

php - Fusebox 框架的 future

mysql - 在数据库中存储登录详细信息

model-view-controller - CFWheels - 如何进行表单自助发布?

coldfusion - 查找 cffile 上传的源文件路径

javascript - 函数内部的 Javascript 变量是否未声明(无 var)被视为全局变量?

ruby 数组将 first,second 放入变量,其余放入另一个变量

coldfusion - cfspreadsheet 参数验证错误

coldfusion - Railo web.cfm 显示 IIS 404