Coldfusion 如何对CF8中的结构使用cfparam?

Coldfusion 如何对CF8中的结构使用cfparam?,coldfusion,coldfusion-8,Coldfusion,Coldfusion 8,我需要将结构传递给方法,但它并不总是被定义的 有这样的东西管用吗 <cfparam name="system_message" default={}> 当我尝试这样做时,我得到的是,传递给函数的参数不是struct类型 此外,我意识到,我可以这样做: <cfif ! isdefined("system_message")> <cfset system_message = {}> </cfif> 但我只是想知道是否有一种更短的

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

有这样的东西管用吗

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

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

此外,我意识到,我可以这样做:

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

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


谢谢你的帮助

你很接近了。您需要将其写为:

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

关于:

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


CF8不喜欢花括号版本。

< P>如果您将此传递给方法,则应考虑在<代码> <代码>调用中使用<代码> <代码>,而不是更全局的<代码> <代码>。相同的“默认”属性也适用。那么你就知道你的变量只存在于函数的参数范围内,更好的封装

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


当我使用它时,我得到了一个错误:在第5行第50列发现无效的CFML构造。ColdFusion正在查看以下文本:{.ColdFusion 8顺便说一句,不确定这在这里是否重要。CF 8确实重要。正如@RobG在上面提到的,CF 8不支持创建结构的符号。请改用StructNew()。因为@RobG的答案更正确(因为使用的是ColdFusion的版本)你应该接受他的回答。