我需要将结构传递给方法,但并不总是定义它。
这样的东西会起作用吗?
<cfparam name="system_message" default={}>
当我尝试这个时,我得到的,传递给函数的参数不是struct类型。
另外,我知道,我可以这样做:
<cfif ! isdefined("system_message")>
<cfset system_message = {}>
</cfif>
但我只是想知道是否有更短的方法,使用cfparam。
感谢您的帮助!
答案 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()#">