ArrayAppend 返回布尔值而不是数组
ArrayAppend returning boolean instead of array
好吧,我已经为此苦苦挣扎了一段时间,我想我会回到基础并尝试找出我的错误,因为我在这里遇到的错误与我在生产线上遇到的错误相同。
这是我的代码:
<cfparam name="session.cart" default="arrayNew(1)">
<cfset session.cart = arrayAppend(session.cart,structNew() )>
<cfset thisCartItem = arraylen(session.cart)>
<cfset session.cart[thisCartItem].itemID = "X">
<cfset session.cart[thisCartItem].quantity = "X">
<cfset session.cart[thisCartItem].itemName = "X">
<cfdump var="#session.cart#">
这是我的错误:
Object of type class java.lang.Boolean cannot be used as an array
错误正是它所说的。变量 session.cart
不是数组。它是一个布尔值。如果您阅读 ArrayAppend documentation,它会解释原因。该函数就地修改数组和returns一个布尔值:
Returns True, on successful completion.
通过在此处捕获结果,您实际上是将购物车值设置为 true/false
:
<!--- Note the addition of the pound signs in the CFPARAM --->
<cfparam name="session.cart" default="#arrayNew(1)#">
<cfset session.cart = arrayAppend(session.cart, structNew())>
话虽如此,您可以使用所有最新版本的 CF 支持的 shorthand 语法大大简化代码,即 {}
- 新结构和 []
- 新数组.要创建一个新数组:
<cfset session.cart = []>
要将一个或多个结构附加到该数组的末尾:
<!--- append first structure to array --->
<cfset ArrayAppend( session.cart
, { itemID = "X", quantity = "X", itemName = "X" }
)>
<!--- append second structure to array --->
<cfset ArrayAppend( session.cart
, { itemID = "Y", quantity = "Y", itemName = "Y" }
)>
好吧,我已经为此苦苦挣扎了一段时间,我想我会回到基础并尝试找出我的错误,因为我在这里遇到的错误与我在生产线上遇到的错误相同。
这是我的代码:
<cfparam name="session.cart" default="arrayNew(1)">
<cfset session.cart = arrayAppend(session.cart,structNew() )>
<cfset thisCartItem = arraylen(session.cart)>
<cfset session.cart[thisCartItem].itemID = "X">
<cfset session.cart[thisCartItem].quantity = "X">
<cfset session.cart[thisCartItem].itemName = "X">
<cfdump var="#session.cart#">
这是我的错误:
Object of type class java.lang.Boolean cannot be used as an array
错误正是它所说的。变量 session.cart
不是数组。它是一个布尔值。如果您阅读 ArrayAppend documentation,它会解释原因。该函数就地修改数组和returns一个布尔值:
Returns True, on successful completion.
通过在此处捕获结果,您实际上是将购物车值设置为 true/false
:
<!--- Note the addition of the pound signs in the CFPARAM --->
<cfparam name="session.cart" default="#arrayNew(1)#">
<cfset session.cart = arrayAppend(session.cart, structNew())>
话虽如此,您可以使用所有最新版本的 CF 支持的 shorthand 语法大大简化代码,即 {}
- 新结构和 []
- 新数组.要创建一个新数组:
<cfset session.cart = []>
要将一个或多个结构附加到该数组的末尾:
<!--- append first structure to array --->
<cfset ArrayAppend( session.cart
, { itemID = "X", quantity = "X", itemName = "X" }
)>
<!--- append second structure to array --->
<cfset ArrayAppend( session.cart
, { itemID = "Y", quantity = "Y", itemName = "Y" }
)>