Как использовать cfparam для структуры в CF8? - PullRequest
3 голосов
/ 27 января 2012

Мне нужно передать структуру в метод, но она не всегда будет определена.

Есть ли что-то подобное, что будет работать?

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

Когда я пытаюсь это сделать, яget, аргумент, передаваемый в функцию, не имеет типа struct.

Кроме того, я понимаю, что мог бы сделать это:

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

Но мне было просто интересно, есть ли более короткий путьделать это, используя cfparam.

Спасибо за любую помощь!

Ответы [ 3 ]

9 голосов
/ 27 января 2012

Как насчет:

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

CF8 не нравится версия с фигурными скобками.

3 голосов
/ 27 января 2012

Если вы передаете это методу, вам следует рассмотреть возможность использования <cfargument> в вызове <cffunction> вместо более глобального <cfparam>. Применяется тот же атрибут «по умолчанию». Тогда вы знаете, что ваша переменная существует только внутри области ARGUMENT внутри функции, лучше инкапсуляция!

<cfargument name="system_message" default="#structNew()#">
3 голосов
/ 27 января 2012

Ты рядом.Вам нужно будет написать это как:

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