Coldfusion if - 如何在 IF 中查找多个项目

问题描述

我有一个 if 结构如下:

<cfif #user.personnel_no# is 'xxxxx' or #user.personnel_no# is 'xxxxx' or #user.personnel_no# is 'xxxxx'>
---data
</cfif>

我该怎么做:

<cfif #user.personnel_no# in ('xxxxx','yyyyy','zzzzz')>
---data
</cfif>

查看 if 中的所有值?

或声明一个列表并执行类似的操作

list = 'xxxxx','zzzzz'

<cfif #user.personnel_no# in list>
    ---data
</cfif>

谢谢。

解决方法

<cfscript>
user.personnel_no = 'yyyyy' 

asArray = ['xxxxx','yyyyy','zzzzz']
writeOutput(asArray.find(user.personnel_no)) // 2


asList = 'xxxxx,yyyyy,zzzzz'
writeOutput(asList.listfind(user.personnel_no)) // 2

</cfscript>

https://trycf.com/gist/f737ef6d010d4ce37936f1d53d021a62/lucee5?theme=monokai

https://cfdocs.org/listfind

https://cfdocs.org/arrayfind

,

如果您关心区分大小写:

    <cfset list = 'xxxxx','zzzzz'>

    <cfif ListContains(list,user.personnel_no) GT 0>
        --do stuff
    </cfif>

如果您不关心区分大小写:

<cfset list = 'xxxxx','zzzzz'>

<cfif ListContainsNoCase(list,user.personnel_no) GT 0>
    --do stuff
</cfif>