如何摆脱没有本地作用域的 Evaluate() (CF9 之前)?

发布于 2024-11-26 11:25:59 字数 422 浏览 1 评论 0原文

好吧,这个函数没有意义,但我只是用它作为例子:

<cffunction name="blah">
    <cfset var myFoo = 123>
    <cfset var varNamePrefix = "my">

    <cfset var bar = Evaluate("#varNamePrefix#Foo")>

    <cfreturn bar>
</cffunction>

使用 CF9,我可以使用 local["#varNamePrefix#Foo"]。 CF7/8 有没有办法摆脱 Evaluate() 而无需使用 var local = structNew() 重构整个内容?

Ok, this func doesn't make sense, but I'm just using it as an example:

<cffunction name="blah">
    <cfset var myFoo = 123>
    <cfset var varNamePrefix = "my">

    <cfset var bar = Evaluate("#varNamePrefix#Foo")>

    <cfreturn bar>
</cffunction>

With CF9, I can use local["#varNamePrefix#Foo"]. Is there a way for CF7/8 to get rid of the Evaluate() without refactoring the whole thing with var local = structNew()?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

遗心遗梦遗幸福 2024-12-03 11:25:59

不是通过记录的方式。 CF9 之前只有 getPageContext() .getActiveFunctionLocalScope()

<cffunction name="blah">
    <cfset var myFoo = 123>
    <cfset var varNamePrefix = "my">
    <!--- ie object.method()[keyName] syntax does not seem to be supported --->
    <cfset var localScope = getPageContext().getActiveFunctionLocalScope()>
    <cfset var bar = localScope["#varNamePrefix#Foo"]>

    <cfreturn bar>
</cffunction>

Not by documented means. Pre-CF9 there is only getPageContext().getActiveFunctionLocalScope()

<cffunction name="blah">
    <cfset var myFoo = 123>
    <cfset var varNamePrefix = "my">
    <!--- ie object.method()[keyName] syntax does not seem to be supported --->
    <cfset var localScope = getPageContext().getActiveFunctionLocalScope()>
    <cfset var bar = localScope["#varNamePrefix#Foo"]>

    <cfreturn bar>
</cffunction>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文