如何在CF8中使用cfparam结构?

时间:2012-01-27 16:11:33

标签: coldfusion coldfusion-8

我需要将结构传递给方法,但并不总是定义它。

这样的东西会起作用吗?

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

当我尝试这个时,我得到的,传递给函数的参数不是struct类型。

另外,我知道,我可以这样做:

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

但我只是想知道是否有更短的方法,使用cfparam。

感谢您的帮助!

3 个答案:

答案 0 :(得分:9)

怎么样:

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

CF8不喜欢花括号版本。

答案 1 :(得分:3)

你很亲密。你需要把它写成:

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

答案 2 :(得分:3)

如果您将此传递给方法,则应考虑在<cfargument>调用中使用<cffunction>而不是更全局的<cfparam>。相同的“默认”属性适用。然后你知道你的变量只存在于函数内的ARGUMENT范围内,更好的封装!

<cfargument name="system_message" default="#structNew()#">