如何使用括号表示法访问范围?

red*_*d-X 0 syntax coldfusion scope

作为函数的输入,我得到一个字符串范围名称,如FORMCOOKIE.如何以括号表示法访问这些顶级作用域?

我正在寻找类似的东西:

var myScope = "FORM";
global[myScope];
Run Code Online (Sandbox Code Playgroud)

显然这不起作用:)

(我不是在寻找任何类型的eval函数,我宁愿switch通过字符串手动获取正确的范围而不是eval函数...)

编辑

需要功能,因此我可以在请求的早期调用一个简单/可访问的函数来识别发送错误类型数据或者不发送所需数据的错误请求.

例如,我将在需要变量的请求中尽早调用以下函数FORM.data1:numeric,FORM.data2:bit并且COOKIE.data3:string:

<cfset require({
  "FORM" : {
    "data1":"numeric",
    "data2":"bit"
  },
  "COOKIE":{
    "data3":"string"
  } 
})>
Run Code Online (Sandbox Code Playgroud)

我知道以下可能会更容易一些:

<cfset require({
  "FORM.data1":"numeric",
  "FORM.data2":"bit",
  "COOKIE.data3":"string"
})>
Run Code Online (Sandbox Code Playgroud)

而不仅仅是使用,isDefined但我需要更多的灵活性来实现其他功能.

Sea*_*yne 5

你可以用structGet()它.

var theformscope = structGet('form');
Run Code Online (Sandbox Code Playgroud)

有关structGet的更多信息,请参阅ColdFusion文档:http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7f03.html