是否可以在ColdFusion中取消定义变量?
例如,像这样:
<cfset myVar = "lsajflksd" />
<cfoutput>
<p>myVar is Defined? #IsDefined("myVar")#</p> <!--- Prints YES --->
</cfoutput>
<cfset Undefine(myVar) /> <!--- Doesn't exist... --->
<cfoutput>
<p>myVar is Defined? #IsDefined("myVar")#</p> <!--- I want it to print NO --->
</cfoutput>
答案 0 :(得分:29)
<cfset StructDelete(Variables, "myVar") />
Variables
是大多数情境中大多数变量的默认范围。
答案 1 :(得分:3)
... FYI
<cffunction name="voidFunc" returntype="void">
</cffunction>
<cfset myVar = voidFunc()>
<cfoutput>#IsDefined("myVar")#</cfoutput> <!--- will show NO --->
我从这篇博文中发现:cfinvoke destroys returnVariable for methods that return void
答案 2 :(得分:2)
在现代版本中,您还可以使用struct.delete()成员函数。
myVar = "lsajflksd";
variables.delete('myVar');