我正在检查 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 .
<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 .