为什么会失败:
<CFIF isdefined("URL.3dfile")>...</CFIF>
以下消息:
函数IsDefined的参数1,现在是URL.3dfile,必须是语法上有效的变量名。
这不会:
<CFIF structkeyexists(URL,"3dfile")>...</CFIF>
解析的方式不一样吗?并且......是以数字开头的变量无效或者不是吗?
答案 0 :(得分:11)
Seybsen - 变量名称不应以数字开头。这可能是较旧的非Java版本CF的遗留物,其中变量不是对象的一部分。
但是,在java世界中,一切都是对象。这导致语法上的细微差别。如果您使用虚线表示法中的变量名称,则var名称可能会引发错误。但是以其他方式使用它会成功。
所以这种语法有效
url['33foo']
但直接设置变量名称 - 33foo = true
- 将无效。
这是一篇完整解释的帖子。
http://www.coldfusionmuse.com/index.cfm/2005/9/8/isdefined%20vs%20structkeyexists