如何摆脱没有本地范围的Evaluate()(CF9之前)?

Hen*_*nry 1 coldfusion

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

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

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

    <cfreturn bar>
</cffunction>
Run Code Online (Sandbox Code Playgroud)

使用CF9,我可以使用local["#varNamePrefix#Foo"].有没有办法让CF7/8摆脱Evaluate()没有重构整个事情var local = structNew()

Lei*_*igh 6

不是通过记录的方式.前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>
Run Code Online (Sandbox Code Playgroud)