CFIF 对于数组变量并不总是存在
CFIF For array variable not always existing
我正在尝试获取一个会话变量并将其分解成一个数组,以便创建单独的会话变量。
我想做的是用一个文本框来查找长度的英尺和英寸。例如 15.2 将是 15 英尺 2 英寸
<cfif isDefined("session")
and structKeyExists(session, 'checkout')
and structKeyExists(session.checkout, 'vehicle')
and structKeyExists(session.checkout.vehicle, 'ft') >
<cfset Feet = "#session.checkout.vehicle.ft#" />
<cfset FeetArray = listtoarray(Feet, ".") />
<cfdump var="#FeetArray#">
</cfif>
然后我可以使用#FeetArray[1]# & #FeetArray[2]# 来表示英尺和英寸。
我遇到的困难是有时无法输入英寸,因此有时不需要 FeetArray[2]。
我尝试使用:
<cfif isDefined("#FeetArray[2]#")>
<cfif isDefined("FeetArray[2]")>
它们都不起作用我只是想知道是否有人可以指导我正确的方向!
您可以检查数组的长度,并据此进行编码。
<cfif isDefined("session") and structKeyExists(session, 'checkout') and structKeyExists(session.checkout, 'vehicle') and structKeyExists(session.checkout.vehicle, 'ft') >
<cfset Feet = "#session.checkout.vehicle.ft#" />
<cfset FeetArray = listToArray(Feet, ".") />
<cfif arrayLen(FeetArray) EQ 1>
code when there is feet available
<cfelse>
code when there are both feet and inches available
</cfif>
</cfif>
要检查数组中的元素是否存在,请使用(命名不当的)arrayIsDefined()
函数:
<cfif arrayIsDefined(FeetArray, 2)>
请注意:您真的不应该像这样对业务逻辑代码使用基于标记的语法。在属于您的视图中保留您的标签。
我正在尝试获取一个会话变量并将其分解成一个数组,以便创建单独的会话变量。
我想做的是用一个文本框来查找长度的英尺和英寸。例如 15.2 将是 15 英尺 2 英寸
<cfif isDefined("session")
and structKeyExists(session, 'checkout')
and structKeyExists(session.checkout, 'vehicle')
and structKeyExists(session.checkout.vehicle, 'ft') >
<cfset Feet = "#session.checkout.vehicle.ft#" />
<cfset FeetArray = listtoarray(Feet, ".") />
<cfdump var="#FeetArray#">
</cfif>
然后我可以使用#FeetArray[1]# & #FeetArray[2]# 来表示英尺和英寸。
我遇到的困难是有时无法输入英寸,因此有时不需要 FeetArray[2]。
我尝试使用:
<cfif isDefined("#FeetArray[2]#")>
<cfif isDefined("FeetArray[2]")>
它们都不起作用我只是想知道是否有人可以指导我正确的方向!
您可以检查数组的长度,并据此进行编码。
<cfif isDefined("session") and structKeyExists(session, 'checkout') and structKeyExists(session.checkout, 'vehicle') and structKeyExists(session.checkout.vehicle, 'ft') >
<cfset Feet = "#session.checkout.vehicle.ft#" />
<cfset FeetArray = listToArray(Feet, ".") />
<cfif arrayLen(FeetArray) EQ 1>
code when there is feet available
<cfelse>
code when there are both feet and inches available
</cfif>
</cfif>
要检查数组中的元素是否存在,请使用(命名不当的)arrayIsDefined()
函数:
<cfif arrayIsDefined(FeetArray, 2)>
请注意:您真的不应该像这样对业务逻辑代码使用基于标记的语法。在属于您的视图中保留您的标签。