作爲函數的輸入,我得到一個字符串範圍名稱,如FORM
或COOKIE
。 如何使用括號表示法訪問這些頂級示波器?如何使用括號表示法訪問示波器?
我在尋找類似:
var myScope = "FORM";
global[myScope];
顯然,雖然:)
(我不是在尋找任何一種eval
功能不工作,我寧願switch
通過串手動獲得比eval
功能的權利範圍...)
編輯
功能是必需的,所以我可以在請求中儘早調用一個簡單/可訪問的函數,以識別發送錯誤類型數據或僅發送所需數據的錯誤請求。
例如,我會盡可能早地調用下面的函數在需要的變量FORM.data1:numeric
,FORM.data2:bit
和COOKIE.data3:string
的請求:
<cfset require({
"FORM" : {
"data1":"numeric",
"data2":"bit"
},
"COOKIE":{
"data3":"string"
}
})>
我知道,下面可能是一個有點容易:
<cfset require({
"FORM.data1":"numeric",
"FORM.data2":"bit",
"COOKIE.data3":"string"
})>
,並不僅僅是使用isDefined
但我需要其他功能的一些更大的靈活性。
你不」噸。範圍已經是全球性的。 **爲什麼你要這樣做?**(可能有更好的方法。) – 2012-08-10 13:27:36
使用Evaluate()。這種事情就是它的存在,除非這個代碼處於特別緊密的循環中,否則不會有性能問題。如果可能受到用戶輸入的影響,您將需要注意對輸入進行消毒。 – barnyr 2012-08-10 13:31:10
通過搜索所有範圍似乎打敗了變量範圍開始的目的。 – Busches 2012-08-10 13:31:41