今天我正在读博客Difference between THIS and APPLICATION scope。什么解释了我的理解,之后我在我的Application.cfc中声明了一个变量,我可以在我的所有页面中访问该变量。所以我的问题是我们可以使用THIS范围来声明应用程序级别的变量吗?或者THIS和APPLICATION范围变量之间还有什么区别? 例子: 的Application.cfcColdFusion中THIS范围和APPLICATION范围有什么区别?
<cfset THIS.testVar1 = 50>
<cfset APPLICATION.testVar1 = 100>
Index.cfm
<cfdump var="#THIS.testVar1#"> O/P: 50
<cfdump var="#APPLICATION.testVar2#"> O/P: 100
因此,这导致我认为,无论是范围是相似的。请让我知道这些范围之间是否有更多不同之处。
当您在Application.cfc中使用'THIS'范围来设置变量时,实际上并没有将它存储在应用程序范围中。该代码将在每个页面请求上得到处理。 –
@ScottStroz:处理的手段? –
如果您在psuedo构造函数中使用了 ',那么每行页面请求都会执行一行代码。但是,如果你设置了一个Application范围变量,正确的方法(例如在'onApplictionStart()'中有其他方法,但这是很常见的),它只会在应用程序启动时或者如果你有逻辑重新初始化应用程序的应用程序。 –