我变得非常困惑。
我有一组变量......
<cfset cataloge_menu_1 = "menu item 1">
<cfset cataloge_menu_2 = "menu item 2">
<cfset cataloge_menu_3 = "menu item 3">
我有一个URL ID所以我想要做的是输出上面的变量基于URL ID,所以我有以下...
<cfset cathead = "cataloge_menu_"&url.typeID>
以及以下输出......
<cfoutput>#cathead#</cfoutput>
但不是根据URL ID输出“菜单项1”或菜单项2“,而是输出”cataloge_menu_1“或”cataloge_menu_2“。
我需要输出的是“菜单项X”而不是“cataloge_menu_X”。
非常感谢任何帮助。
答案 0 :(得分:8)
这是做什么的:
<cfset cathead = "cataloge_menu_"&url.typeID>
只是制作一个包含"cataloge_menu_1"
(等)的字符串。而这个:
<cfoutput>#cathead#</cfoutput>
只是输出该字符串。
如果你想访问一个名为cataloge_menu_1
的变量,那么你不能简单地输出一个包含该变量名的字符串,并希望CF猜测你的意思&#34;寻找一个具有该名称的变量输出而不仅仅是字符串&#34;。您需要告诉它输出变量。
默认情况下,无范围变量放在变量范围内。因此,要从变量作用域中获取动态命名变量,可以使用关联数组表示法通过包含其名称的字符串引用变量:
<cfoutput>#variables[cathead]#</cfoutput>
PS:它可能是语言的东西(即:代码不是英文),但你的意思是cataloge
或catalogue
(或者我是&{39;姿势{{} 1}}如果你必须)?
答案 1 :(得分:1)
您可以使用Evaluate()
功能完成此操作。这是它的工作原理:
<cfset cataloge_menu_1 = "menu item 1">
<cfset cataloge_menu_2 = "menu item 2">
<cfset cataloge_menu_3 = "menu item 3">
<cfset url.typeID=2 />
<cfset cathead = Evaluate("cataloge_menu_"&url.typeID) />
<cfoutput>#cathead#</cfoutput>
答案 2 :(得分:1)
为什么不尝试这个:
<cfset cathead = VARIABLES["cataloge_menu_" & url.typeID]>
<cfoutput>#cathead#</cfoutput>
或者你可以输出动态变量:
<cfoutput>#VARIABLES["cataloge_menu_" & url.typeID]#</cfoutput>