use*_*580 8 variables coldfusion scope
我对变量解析顺序没什么印象,但我在CFML Reference或ColdFusion Dev Guide中找不到它.有人可以帮忙吗?
小智 19
ColdFusion 9的规范范围顺序是:
您可以在开发ColdFusion 9应用程序中查看Adobe的相关文档.
但是,某些范围仅在某些上下文中可用,因此搜索范围的顺序是不同的,具体取决于代码的上下文.
正如Al Everett在他的回答中指出的那样,始终将变量作为范围被认为是最佳实践.显式作用域产生较少的模糊代码,通常更快.只要不对变量进行范围调整,就有可能从您不想要的范围中获取变量.
当您访问的变量位于搜索顺序的第一个范围内时,实际上将变量保持为无范围的速度稍微快一些.这是因为ColdFusion解析它时,变量名中的每个点都会产生很小的代价.例如,在CFC方法是稍快访问
myVar
比local.myVar
.这仅适用于:
local
CFC或UDF中的范围变量- 线程
local
范围内的线程变量variables
CFML中的范围变量在所有其他情况下,显式声明范围更快(更清晰).
使用这种技术应被视为不良做法.您应该只在性能关键代码中使用此技术,在此代码中您可以保证变量始终存在于预期范围内.请记住,这是以增加歧义为代价的.
ale*_*ale 16
始终将变量作为范围是一种普遍接受的最佳实践,主要有两个原因:
也就是说,这里是搜索订单变量范围:
编辑:它还告诉你注意未搜索的范围:SESSION,SERVER,APPLICATION