【Evaluate】複雑な文字列式でも評価可能 | うたらぼ(アメブロ)
2009-06-08 21:24:58

【Evaluate】複雑な文字列式でも評価可能

テーマ:ColdFusion関数
以下のようなプログラムがあります。

01: <cfset val_test1 = "test1">
02: <cfset val_test2 = "test2">

上記変数をevaluateを使って表示

01: <cfloop index="idx" from="1" to="2">
02:     <cfoutput>#evaluate("val_test#idx#")#<br></cfoutput>
03: </cfloop>

構造体の値をevaluateを使う方法もあります。

01: <cfset st = structNew()>
02: <cfloop index="idx" list="abc,a c">
03:     <cfset st[idx] = idx>
04: </cfloop>
05: 
06: <cfdump var="#st#">
07: 
08: <cfset st2 = structNew()>
09: <cfset tmp = "abc">
10: <cfset st2.a = evaluate("st.#tmp#")>
11: 
12: <cfset tmp = "a c">
13: <cfset st2.b = evaluate("st.#tmp#")>

構造体の場合は、キーの間にスペースがあってもいいのですが、
ドット形式の表現はできません。

よって、下の行はエラーとなります。

間にスペースがあるかないか注意してください。


evaluateのドキュメントはこちらです(cf7)。

うたらぼさんをフォロー

ブログの更新情報が受け取れて、アクセスが簡単になります

コメント

[コメントする]

Ameba人気のブログ

Amebaトピックス