我想将一个可选的数组参数传递给一个函数。如果未提供参数,则数组应为空。 我尝试了以下方法:
<cfargument name="time_blocks" type="array" required="false" default="[]">
但是我收到以下错误:
invalid call of the function CreateRateBlock
14th Argument (time_blocks) is of invalid type, can't cast String [] to a value of type [array]
我也试过这个:
<cfargument name="time_blocks" type="array" required="false" default="">
在这种情况下,错误几乎相同:
invalid call of the function CreateRateBlock
14th Argument (time_blocks) is of invalid type, can't cast String [] to a value of type [array]
我也尝试删除默认属性,但在这种情况下,time_blocks
的值为null。
我做错了什么?
答案 0 :(得分:12)
[]
不起作用,因为它只是一个包含2个字符"[]"
的字符串。
#[]#
技术上应该可以工作,但是老CF不够智能。所以使用:
<cfargument name="time_blocks" type="array" required="false" default="#arrayNew(1)#">
答案 1 :(得分:6)
将[]
更改为#[]#
。您目前正在尝试为其提供字面值"[]"
。