ColdFusion structkey以数字开头

Sey*_*sen 3 variables coldfusion coldfusion-9

为什么会失败:

<CFIF isdefined("URL.3dfile")>...</CFIF>
Run Code Online (Sandbox Code Playgroud)

以下消息:

函数IsDefined的参数1(现在是URL.3dfile)必须是语法上有效的变量名.

这不会:

<CFIF structkeyexists(URL,"3dfile")>...</CFIF>
Run Code Online (Sandbox Code Playgroud)

解析它的方式不一样吗?并且...是以数字无效的变量或不是它们?

Mar*_*ger 11

Seybsen - 变量名称不应以数字开头.这可能是较旧的非Java版本CF的遗留物,其中变量不是对象的一部分.

但是,在java世界中,一切都是对象.这导致语法上的细微差别.如果您使用虚线表示法中的变量名称,则var名称可能会引发错误.但是以其他方式使用它会成功.

所以这种语法有效 url['33foo']

但是直接设置变量名称33foo = true- 将不起作用.

这是一篇完整解释的帖子.

http://www.coldfusionmuse.com/index.cfm/2005/9/8/isdefined%20vs%20structkeyexists