ColdFusion ArrayContains 问题

ColdFusion ArrayContains issue

问题: 我正在尝试检查我的变量 user_ID 的值是否在我创建的数组之一中?

背景: 我不确定我的语法是否正确 我已经在下面发布了它,其中包含我从 cfcatch 得到的错误。

<cfargument name="usr_ID" required="yes">

<cfset arrRFQUsers = [ "1346", "2246", "130","2223", "3712", "24","6444", "6953", "7240"] />

<cfset arrRFQAdmin = [ "599", "10", "28","45","7420", "7340"] />



<cfif  #ArrayContains(arrRFQUsers, usr_ID)# >

        <cfset userReturn = "rfqUser">


<elseif  #ArrayContains(arrRFQAdmin, usr_ID)# >

    <cfset userReturn = "rfqAdmin">

<elseif>


    <cfset userReturn = "Not Set">


</cfif>

        <cfreturn userReturn>

这是我看到的错误:

Other Error: Expression

Message: Variable USERRETURN is undefined.
Detail:

我认为 ColdFusion 中没有 <elseif> 标签(除非它是最近引入的),但无论如何,<cfif> 的最后一部分应该只是 <cfelse> 而不是 <cfelseif>:

<cfif ArrayContains(arrRFQUsers, usr_ID)>
    <cfset userReturn = "rfqUser">
<cfelseif ArrayContains(arrRFQAdmin, usr_ID)>
    <cfset userReturn = "rfqAdmin">
<cfelse>
    <cfset userReturn = "Not Set">
</cfif>

<cfreturn userReturn>

请注意,我已经删除了您在这里不需要的无关井号 #

我还建议在 <cfif> 之前的开头设置一个默认值,这样您就可以确定该值将存在。我还建议您显式地确定变量的范围(例如,使用 arguments.usr_ID 而不是 usr_ID,并将您的函数变量放入 local 范围):

<cfargument name="usr_ID" required="yes">

<cfset local.arrRFQUsers = [ "1346", "2246", "130","2223", "3712", "24","6444", "6953", "7240"] />
<cfset local.arrRFQAdmin = [ "599", "10", "28","45","7420", "7340"] />

<cfset local.userReturn = "Not Set" />
<cfif ArrayContains(local.arrRFQUsers, arguments.usr_ID)>
    <cfset local.userReturn = "rfqUser" />
<cfelseif ArrayContains(local.arrRFQAdmin, arguments.usr_ID)>
    <cfset local.userReturn = "rfqAdmin" />
</cfif>

<cfreturn local.userReturn />