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

I am checking whether Session.cart isdefined, if not defined then defining it

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

1:但我收到此错误:

2: SESSION 中未定义元素 CART。

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

<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#">

这是 trycf.com 的要点 https://trycf.com/gist/d872fd0c6356662a8141f3dcad7f3e90/lucee5?theme=monokai

我用 StructKeyEsxists() 而不是 IsDefined() 试过了,现在运行良好。

<cfif not structKeyExists(session, "cart")>
        <cfset session.cart = ArrayNew(1)>
       </cfif>

谢谢 AndreasRu .