在LOC,VAR和VARIABLES范围中声明变量之间是否存在差异?

Moh*_*mad 2 coldfusion scope

我看到经常使用的所有三种符号,我想知道它们之间的区别是什么:

<cfset var foo = "bar" />
<cfset local.foo = "bar" />
<cfset variables.foo = "bar" />
<cfset arguments.foo = "bar" />
Run Code Online (Sandbox Code Playgroud)

Dan*_*ers 13

varlocal是相同的范围,它们仅可用于声明它们的方法/函数.在使用var创建仅存在于方法中的变量之前,本地范围是CF 9的新增内容.

变量可用于声明它们的整个cfc或cfm页面以及任何包含的模板.

arguments用于传递给方法/函数的参数,并且只存在于其中.

  • @"var和local是相同的范围" - 仅在CF9(兼容引擎)中.在CF8或更早版本中,local将是变量作用域中的结构,除非您首先执行"var local = structNew()". (8认同)