ループでは、次のものが次のように追加par.fval
さthis.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.T
ColdFusion がまったく新しい変数として上書きされると想定していたので、その理由を理解しようとしています。
ロジックを削除するために絞り込む:
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
。