首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >动态变量命名和引用(ColdFusion)

动态变量命名和引用(ColdFusion)
EN

Stack Overflow用户
提问于 2013-08-23 19:46:26
回答 2查看 9.6K关注 0票数 7

星期五快乐,

几天来一直想破解这个问题。我想要做的是使用一个固定字符串和一个变量(数字)组合动态地创建一个变量。

我正在查询一个数据库以获得代理列表,然后我希望为每个代理创建单独的变量,以保存不同的统计信息。我希望获得循环中的当前stat (即创建的票证),然后将每个代理ID添加到末尾。

我为GC调用了第一个stat Get Created,因此一个包含当前stat和代理ID的示例变量将类似于GC1

我在谷歌上搜索并阅读了许多不同的提示、指南等,但大多数都已经过时了(2002年!)或者似乎是基于查询和数组。我在寻找更简单的东西(至少我相信)。

我知道我应该能够使用(AID = Agent ID)这样的代码动态地创建变量:

代码语言:javascript
运行
复制
<cfset "GC#AID#" = getCreated.RecordCount>

现在,我没有错误,所以我假设变量是正确创建的,但是当我输出变量时,变量才是我真正遇到问题的地方(或者我认为是这样的)。

不管我尝试了多少种不同的方法,输出始终是GC1。相反,我希望显示变量的而不是变量名。

我知道我不想使用“评估”,我在其他站点上看到过很多例子,所以关于使用struct表示法,但是这些例子总是与查询结合在一起的。

我觉得我一定是错过了一些很简单的东西。对于如何能够在查询上下文之外输出动态创建的变量的,有什么想法吗?

抱歉,我的解释太冗长了,只是想确认一下我的意思。

请告诉我是否有任何澄清会有帮助。

如果相关的话,我使用的是ColdFusion 10。

提前感谢!

编辑1

这就是我目前对输出代码的要求:

代码语言:javascript
运行
复制
<cfset test = "GC#variables.AID#">
Test: <cfoutput>#test#</cfoutput>

我意识到这可能是不对的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-23 20:12:12

一种选择:

设置动态变量名:

代码语言:javascript
运行
复制
<cfset variables["GC" & AID] = "Testing" />

输出动态变量名称的值:

代码语言:javascript
运行
复制
<cfoutput>#variables["GC" & AID]#</cfoutput>

另一种选择:

设置动态变量名:

代码语言:javascript
运行
复制
<cfset variables["GC#AID#"] = "Testing" />

输出动态变量名称的值:

代码语言:javascript
运行
复制
<cfoutput>#variables["GC#AID#"]#</cfoutput>
票数 18
EN

Stack Overflow用户

发布于 2013-08-23 20:19:24

所有变量范围都是结构。因此,循环遍历该作用域作为一个结构。在编写代码时,它位于变量范围内。我会把它放在它自己的结构中,但是下面是你想要做的一个被黑客攻击的版本:

代码语言:javascript
运行
复制
<cfloop collection="#variables#" item="k">

    <cfif left(k,2) eq "GC">
        <cfoutput>#k# : #variables[k]#</cfoutput><br/>
    </cfif>

</cfloop>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18410726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档