I want to pass an optional array parameter to a function. If the parameter is not provided, the array should be empty. I tried the following:
<cfargument name="time_blocks" type="array" required="false" default="[]">
But I get the following error:
invalid call of the function CreateRateBlock
14th Argument (time_blocks) is of invalid type, can't cast String [] to a value of type [array]
I also tried this:
<cfargument name="time_blocks" type="array" required="false" default="">
In this case, the error is almost the same:
invalid call of the function CreateRateBlock
14th Argument (time_blocks) is of invalid type, can't cast String [] to a value of type [array]
I also tried removing the default attribute, but in that case the value of time_blocks
is null.
What am I doing wrong?
[]
does not work because it is just a string of 2 chars "[]"
.
#[]#
technically should work, but older CF is not smart enough. So use:
<cfargument name="time_blocks" type="array" required="false" default="#arrayNew(1)#">
Change []
to #[]#
. You're currently trying to give it the literal value "[]"
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With