是否有可能在ColdFusion中取消定义变量?

时间:2009-07-09 16:20:29

标签: syntax coldfusion

是否可以在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>

3 个答案:

答案 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');

https://docs.lucee.org/reference/objects/struct/delete.html