在 ColdFusion 组件 (CFC) 中,是否有必要为变量范围的变量使用完全限定名称?
如果我改变这个,我会不会惹上麻烦:
<cfcomponent>
<cfset variables.foo = "a private instance variable">
<cffunction name = "doSomething">
<cfset var bar = "a function local variable">
<cfreturn "I have #variables.foo# and #bar#.">
</cffunction>
</cfcomponent>
到这个?
<cfcomponent>
<cfset foo = "a private instance variable">
<cffunction name = "doSomething">
<cfset var bar = "a function local variable">
<cfreturn "I have #foo# and #bar#.">
</cffunction>
</cfcomponent>
最佳答案
创建变量时指定“变量”无关紧要,因为 foo 默认会放在变量范围内;但是当您访问变量时会很重要。
<cfcomponent>
<cfset foo = "a private instance variable">
<cffunction name="doSomething">
<cfargument name="foo" required="yes"/>
<cfset var bar = "a function local variable">
<cfreturn "I have #foo# and #bar#.">
</cffunction>
<cffunction name="doAnotherThing">
<cfargument name="foo" required="yes"/>
<cfset var bar = "a function local variable">
<cfreturn "I have #variables.foo# and #bar#.">
</cffunction>
</cfcomponent>
doSomething("args") 返回“我有 args 和 函数局部变量 ”
doAnotherThing("args") 返回“我有 变量的私有(private)实例 和 函数局部变量 。”
关于ColdFusion:在 CFC 中省略 variables 关键字是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59390/