如何避免评估()

Rin*_*Raj 3 coldfusion

我怎么能写等价的

<cfset lang = Evaluate("SERVER.Locale.#LocaleName#.#SESSION.Locale#")>
Run Code Online (Sandbox Code Playgroud)

不使用Evaluate.

我试过类似的东西

<cfset lang = SERVER[Locale][#LocaleName#][#SESSION.Locale#]>
Run Code Online (Sandbox Code Playgroud)

在提到这个之后,但它没有用.

UPDATE

<cfset localename = "test">
<cfset session.locale = "en">
<cfif Not IsDefined("SERVER.LOCALE")>
    <cfset SERVER.Locale = StructNew()>
</cfif>

<cfif IsDefined("SERVER.Locale.#LocaleName#")>
    <cfset StructDelete(SERVER.Locale, "#LocaleName#")>
</cfif>
<cfset "SERVER.Locale.#LocaleName#" = StructNew()>
<!---<cfset lang = Evaluate("SERVER.Locale.#LocaleName#.#SESSION.Locale#")>--->
<!---<cfset lang = SERVER["Locale.#LocaleName#.#SESSION.Locale#"]>--->
<cfset lang = SERVER.Locale[LocaleName][SESSION.Locale]>
<cfoutput>#lang#</cfoutput>
Run Code Online (Sandbox Code Playgroud)

错误:

元素en在作为表达式的一部分引用的CFML结构中未定义.

Ada*_*ron 11

这个:

<cfset lang = Evaluate("SERVER.Locale.#LocaleName#.#SESSION.Locale#")>
Run Code Online (Sandbox Code Playgroud)

应修改为:

<cfset lang = SERVER.Locale[LocaleName][SESSION.Locale]>
Run Code Online (Sandbox Code Playgroud)

你不应该[Locale]像这样的方括号.

我认为错误信息(你应该总是用你的问题发布)可能实际上解释了你,dunnit?