Не так много кода, который вы опубликовали, будет проходить через синтаксический анализатор, поскольку у вас есть несколько недопустимых конструкций CFML, таких как [i]_FMCTotal
, которые не являются допустимым именем переменной.Кроме того, использование хэшей не требуется в условных выражениях, хэши используются для вывода.
Чтобы ответить на вопрос, существует evaluate()
, но гораздо более удобочитаемым, безопасным и поддерживаемым решением было бы использовать рычагиструктура для цветовых кодов.
<cfset colorCodes = {}>
<!--- presuming ..._FMCTotal and .._FMC are reworked as structs also --->
<cfloop list="dog,cat,pig,horse" index="i">
<cfif (FMCTotal[i] /2) GT trim(FMC[i])>
<cfset colorCode[i] = 'red'>
<cfelseif (trim(FMCTotal[i] /1.5) GT trim(FMC[i])>
<cfset colorCode[i] = 'yellow'>
<cfelse>
<cfset colorCode[i] = 'green'>
</cfif>
</cfloop>
Результатом этого будет структура данных, из которой вы можете легко получить доступ к любому значению элементов в следующем коде
{ // possible result
'pig': 'green'
, 'cat': 'yellow'
, 'dog': 'red'
, 'horse': 'green'
}
colorCode['dog'] // => 'red'
Если выу вас нет доступа к переработке переменных _FMC, которые вы могли бы оценить evaluate('#i#_FMCTotal')
, но было бы намного чётче использовать коллекцию для них также, как в моем примере.