2015-01-07 10 views
6

मैं किसी फ़ंक्शन में वैकल्पिक सरणी पैरामीटर पास करना चाहता हूं। यदि पैरामीटर प्रदान नहीं किया गया है, तो सरणी खाली होनी चाहिए।ऐरे पैरामीटर, डिफ़ॉल्ट रूप से खाली

<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 का मान शून्य है। मैं क्या गलत कर रहा हूँ?

+0

क्या आपने उद्धरण के बिना [] के साथ प्रयास किया है? – Tropicalista

उत्तर

11

[] काम नहीं करता है क्योंकि यह केवल 2 वर्ण "[]" की एक स्ट्रिंग है।

#[]# तकनीकी रूप से काम करना चाहिए, लेकिन पुराना सीएफ पर्याप्त स्मार्ट नहीं है। तो उपयोग करें:

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

'# [] # 'cflive.net के सीएफ 9/रेलो 4 पर काम करता है।' ' –

+1

हाँ मुझे नहीं लगता कि यह CF8 के बाद से एक समस्या है, इसलिए जब तक वे CF8 चला रहे हों और वास्तव में * समस्या * है, तो '# [] #' का उपयोग करना एक बेहतर जवाब है, मुझे लगता है –

6

[] से #[]# बदलें। आप वर्तमान में इसे शाब्दिक मूल्य "[]" देने की कोशिश कर रहे हैं।

संबंधित मुद्दे