0

ループでは、次のものが次のように追加par.fvalthis.filtersれますpar.T

<cfset par.T = this.filters />
<cfset ArrayAppend(par.T[this.name],par.fval)/>

すべての変数が最初に定義され、par.fval反復ごとに変化する場合:

<cfloop ...>
    <cfdump var="#this.filters#"/>
    <cfset par.T = this.filters />
    <cfset ArrayAppend(par.T[this.name],par.fval)/>
</cfloop>

this.filters追加された最後の値を使用して、反復ごとにダンプしpar.fvalます。

par.TColdFusion がまったく新しい変数として上書きされると想定していたので、その理由を理解しようとしています。

ロジックを削除するために絞り込む:

filtersA: 
<cfdump var="#this.filters#">
<cfset par.T = #this.filters# />
<cfset ArrayAppend(par.T[this.name],par.fval)/>

filtersB: 
<cfdump var="#this.filters#">

そのappendステートメント全体に追加par.fvalされたことを示します。this.filtersそのため、何らかの理由で、par.Tのメモリ空間への参照ではなく、独自の変数にならないように見えますthis

4

0 に答える 0