[ColdFusion] 配列変数の初期化

  • このエントリーをはてなブックマークに追加
  • 人気ブログランキング

例題

配列変数aに100件分を"A"で初期化する。

解答

<cfset a = ArrayNew(1)>
<cfset ArraySet(a, 1, 100, "A")>

 

ArraySet関数を使うと1行で初期化できます。

 

長いことColdFusionをやっていますが、
実はArraySet関数を使ったことがありませんでした。

 

cfloopで対応していました。

 

いまさらながら反省!!

 

ところで、本当にデータがセットされているか
確認したい場合は、
cfdump
というCFMLタグを使います。

 

上記解答の最後に

 

<cfdump var="#a#">

 

とすると、画面に表示されます。

 

cfdumpはデバックするときに重宝します。

 

ちなみに、なぜ初期化するかというと
あらかじめ指定された変数に値がはいっていない場合、
変数を表示しようとするとエラーとなるからです。

 

例)

<cfset a = ArrayNew(1)>
<cfset ArraySet(a, 2, 100, "A")>
<cfoutput>
#a[1]#
</cfoutput>

 

実行すると、

 

要素 1 は、型 class coldfusion.runtime.Array の Java object 内で未定義です。

 

というエラーが表示されました。

cfdumpで確認してみるとa[1]の内容は

 

[undefined array element]

 

と、なっています。

  • このエントリーをはてなブックマークに追加
  • 人気ブログランキング

この記事に関連する記事一覧

最近の投稿
カテゴリー
タグ
アーカイブ
プロフィール