我怎么能写等价的
<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?