2012-01-27 5 views
3

構造にメソッドを渡す必要がありますが、必ずしも定義されているとは限りません。cfparamをCF8の構造体に使用するには?

このような機能がありますか?

<cfparam name="system_message" default={}> 

私がこれを試してみると、関数に渡される引数はstruct型ではありません。

はまた、私はこれを行うことができ、実現:

<cfif ! isdefined("system_message")> 
     <cfset system_message = {}> 
</cfif> 

しかし、それをやってCFPARAMを使用しての短い道があった場合、私は思っていました。

ありがとうございました!

答えて

9

何について:

<cfparam name="system_message" default="#StructNew()#"> 

CF8は、中括弧のバージョンが好きではありません。

3

もうすぐです。あなたのようにそれを書く必要があります:

<cfparam name="system_message" default="#{}#"> 
+0

、私はこのエラーを取得しています: {:列の5行で見つかった無効なCFMLコンストラクトは、50 ColdFusionは、次のテキストを見ていました。ちなみにColdfusion 8は、ここで重要かどうかは分かりません。 – RandyLahey

+1

CF 8は重要です。前述の@RobGのように、CF 8は構造体を作成するための表記法をサポートしていません。代わりにStructNew()を使用してください。 –

+0

素晴らしいです、ありがとう! – RandyLahey

3

これをメソッドに渡す場合は、<cfparam>ではなく<cffunction>コールで<cfargument>を使用することを検討する必要があります。同じ「デフォルト」属性が適用されます。変数が、関数内のARGUMENTスコープ内にのみ存在し、より優れたカプセル化が存在することがわかります。私はそれを使用する場合

<cfargument name="system_message" default="#structNew()#"> 
関連する問題