Cfml 我正在检查Session.cart是否已定义,如果未定义,则定义它

Cfml 我正在检查Session.cart是否已定义,如果未定义,则定义它,cfml,Cfml,1:但是我得到了这个错误: 2:会话中未定义元素购物车。使用isdefined()时,需要将变量名作为字符串在引号中传递。按照您的操作方式,它将查找variable session.cart中定义的变量名,因此抛出错误。此外,您只是创建一个空数组,而不是用数据填充它,但是这完全取决于您希望如何在应用程序中填充数组。。以下是一种正确操作的方法: <cfif not isDefined(session.cart)> <cfset session.cart =

1:但是我得到了这个错误:

2:会话中未定义元素购物车。

使用isdefined()时,需要将变量名作为字符串在引号中传递。按照您的操作方式,它将查找variable session.cart中定义的变量名,因此抛出错误。此外,您只是创建一个空数组,而不是用数据填充它,但是这完全取决于您希望如何在应用程序中填充数组。。以下是一种正确操作的方法:

<cfif not isDefined(session.cart)>
           <cfset session.cart = arrayNew(1)>
          </cfif>

以下是trycf.com上的要点

我用structKeysExists()而不是IsDefined()尝试了它,现在它工作得很好

<cfif not isDefined("session.cart")>
  <!--- create empty array--->
  <cfset session.cart = arrayNew(1)>
  <!--- populate array with data at index 1--->
  <cfset session.cart[1]="some data as string"/>
</cfif>
<cfdump var="#session.cart#">

谢谢AndreasRu。

已定义(“session.cart”)>无法工作。把它当作一个数组而不是一个数组
<cfif not structKeyExists(session, "cart")>
        <cfset session.cart = ArrayNew(1)>
       </cfif>