fre*_*ent 0 variables parameters coldfusion defined
只是有点无能......使用Coldfusion8,如果我将会话转储到文件:
<cfdump output="D:\ColdFusion8\logs\dump.txt" var="#Session#">
Run Code Online (Sandbox Code Playgroud)
这包括:
accounttyp: whatever
Run Code Online (Sandbox Code Playgroud)
如果我只转储此参数,我得到相同的结果:
<cfdump output="D:\ColdFusion8\logs\dump.txt" var="#Session.accounttyp#">
Run Code Online (Sandbox Code Playgroud)
问题:
如果已定义并可转储,那么如何检查isdefined如下:
<cfdump output="D:\ColdFusion8\logs\dump.txt" var="#IsDefined(Session.accounttyp)#">
Run Code Online (Sandbox Code Playgroud)
原来是NO?如果它在那里它应该被定义,不应该吗?
谢谢你的澄清.
<cfdump output="D:\ColdFusion8\logs\dump.txt" var="#IsDefined(Session.accounttyp)#">
这是因为语法不正确.IsDefined
期望变量的名称,即字符串.通过省略变量名称周围的引号,会首先评估会话变量,并将其值("无论什么")传递给它IsDefined
.所以代码实际上是检查名为"whatever"的变量,而不是"session.accounttyp",即:
<cfif IsDefined("whatever")>
Run Code Online (Sandbox Code Playgroud)
这就是结果的原因NO
.这是正确的语法.(注意引号和缺少英镑符号).
<cfif IsDefined("Session.accounttyp")>
Run Code Online (Sandbox Code Playgroud)
但是,我建议改用structKeyExists
.它通常是优选的,IsDefined
因为它更精确.