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的版本)你应该接受他的回答。