2015-01-07 20 views
6

Ich möchte einen optionalen Array-Parameter an eine Funktion übergeben. Wenn der Parameter nicht angegeben wird, sollte das Array leer sein. Ich habe versucht, die folgenden:Array-Parameter, standardmäßig leer

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

Aber ich erhalte den folgenden Fehler:

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

Ich habe auch versucht dies:

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

In diesem Fall wird der Fehler ist fast das gleiche:

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

Ich habe auch versucht, das Standardattribut zu entfernen, aber in diesem Fall ist der Wert time_blocks null. Was mache ich falsch?

+0

Haben Sie mit [] ohne Anführungszeichen versucht? – Tropicalista

Antwort

11

[] funktioniert nicht, weil es nur eine Zeichenfolge von 2 Zeichen "[]" ist.

#[]# technisch sollte funktionieren, aber ältere CF ist nicht schlau genug. Verwenden Sie also:

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

'# [] #' funktioniert auf CF 9/Railo 4 von cflive.net. ' ' –

+1

Ja Ich glaube nicht, dass das seit CF8 ein Problem war. Wenn sie also CF8 nicht laufen lassen und dieses Problem tatsächlich haben, ist die Verwendung von '# [] #' eine bessere Antwort, denke ich –

6

Ändern [] zu #[]#. Sie versuchen gerade, ihm den wörtlichen Wert "[]" zu geben.