2015-12-11 2 views
1

Я работаю с некоторым устаревшим кодом, и я застрял в оценке оператора ColdFusion if с несколькими условиями. Что я хочу сделать, так это:ColdFusion if statement with multiple conditions

<cfif condtion1 eq'yes'> 
    Display admin text 
</cfif> 

<cfif condition2 eq'yes' && condition1 eq'no'> 
    display non-admin text 
    </cfif> 

<cfif condition2 eq'yes' && condition1 eq'yes'> 
    display non-admin text 
    </cfif> 

Если первое утверждение верно, оно функционирует должным образом. Если второе утверждение верно, если функции выполнены правильно.

Если третий оператор является истинным, он отображает текст из первого оператора, когда он должен отображать текст из второго оператора.

+0

Нет, && отлично. @kidaiu - Ладно ... так в чем ваш вопрос? :) – Leigh

+0

@Lyigh Yup. ты прав. По какой-то причине я всегда использовал 'AND' для тегов и' && 'для скрипта ... не уверен, где я взял это – beloitdavisja

+0

@beloitdavisja - Ну, это не всегда поддерживалось ;-) Тот, который я всегда смешиваю, пытается используйте '>' или '> =' в тегах, когда он работает только в cfscript. – Leigh

ответ

1

Как упоминается Ли в комментариях, если условие 1 экв 'да', то оба утверждения 1 и 3 истинны.

Добавить «условие2 neq« да »в первый оператор if, если вы хотите, чтобы во всех случаях был только один из тех блоков if.

+0

Да. Хотя для улучшения удобочитаемости я бы предложил изменить «eq» yes'' и 'neq 'yes'', вместо' isSomething' или '! IsSomething' (и это могло бы быть выражено как два условия, а не три). – Leigh

2

Чтобы показать "дисплей администратора текст" только если condition1 соблюдено, вы можете идти, как это:

<cfset isAdmin = condition1> 
<cfset isUser = condition2> 

<cfif isAdmin and (not isUser)> 
    Display admin text 
<cfelse> 
    display non-admin text 
</cfif> 

Для уточнения этого:

<cfset isAdmin = condition1> 
<cfset isUser = condition2> 

<cfif isAdmin and isUser> 
    I'm admin AND user. 
<cfelseif isAdmin> 
    I'm admin BUT NOT user. 
<cfelseif isUser> 
    I'm NOT admin, BUT user. 
</cfif> 

Примечание: Я объявил "говорящее" переменные для лучшей читаемости.

+0

Хорошее объяснение во втором разделе. – Leigh

+0

Спасибо за все ответы. Я закончил расчесывать файлы и смог выделить переменную, которая была равна null, когда условие было встречено и не было нулевым, когда все остальные были выполнены. Поэтому я думаю, что у меня получилось что-то близкое к тому, что сказал Алекс. Я также нашел сайт trycf.com чрезвычайно полезным.Будучи новичком в сообществе Stack, не уверен, как этот процесс работает, чтобы выразить признательность за помощь в этом. – kidaiu

+0

@kidaiu - В общем, а) голосование за любые сообщения, которые вы нашли полезными. B) Если сообщение либо полностью ответит на ваш вопрос, либо предоставило большую часть информации, ведущей к ответе, отметьте зеленую стрелку рядом с ней и отметьте ее как решение. c) В тех случаях, когда вы нашли свое решение - или ваш окончательный код * значительно отличается от того, что уже было опубликовано в других ответах, не стесняйтесь публиковать свой собственный ответ. (Это разрешено на S.O.) Это не только помогает следующему парню, но и люди могут голосовать и на нем. – Leigh

Смежные вопросы