2015-01-07 19 views
6

Chcę przekazać opcjonalny parametr tablicy do funkcji. Jeśli parametr nie zostanie podany, tablica powinna być pusta. Próbowałem następujące:Parametr tablicy, domyślnie pusty

<cfargument name="time_blocks" type="array" required="false" default="[]"> 

Ale pojawia się następujący błąd:

invalid call of the function CreateRateBlock 
14th Argument (time_blocks) is of invalid type, can't cast String [] to a value of type [array] 

Próbowałem to również:

<cfargument name="time_blocks" type="array" required="false" default=""> 

W tym przypadku błąd jest prawie taka sama:

invalid call of the function CreateRateBlock 
14th Argument (time_blocks) is of invalid type, can't cast String [] to a value of type [array] 

Próbowałem również usunąć domyślny atrybut, ale w takim przypadku wartość time_blocks ma wartość null. Co robię źle?

+0

Czy próbowałeś z [] bez cytatów? – Tropicalista

Odpowiedz

11

[] nie działa, ponieważ jest to tylko ciąg 2 znaków "[]".

#[]# technicznie powinien działać, ale starszy CF nie jest wystarczająco inteligentny. Więc użyj:

<cfargument name="time_blocks" type="array" required="false" default="#arrayNew(1)#"> 
+1

'# [] #' działa na CF 9 cflive.net/Railo 4. ' ' –

+1

Tak Nie sądzę, że to był problem od czasu CF8, więc jeśli nie używają CF8 i faktycznie * mają * ten problem, użycie '# [] #' jest lepszą odpowiedzią, myślę, że –

6

Zmień [] na #[]#. Obecnie próbujesz nadać mu literalną wartość "[]".

Powiązane problemy