2009-08-19 6 views
10

क्या कोल्डफ्यूजन में संरचना बनाने के लिए कोई "छोटा" वाक्यविन्यास है?क्या कोल्डफ्यूज़न में संरचना बनाने के लिए एक छोटा वाक्यविन्यास है?

<cfscript> 
    stcML = GetPrompts({ Template: "Label", Language: "en" }); 
</cfscript> 

वहाँ इस तरह कुछ भी है:

<cfscript> 
    ref = StructNew(); 
    ref.Template = "Label"; 
    ref.Language = "en"; 
    stcML = GetPrompts(ref); 
</cfscript> 
अधिक JavaScript ऑब्जेक्ट की तरह कुछ के साथ

: मैं इस वर्बोज़ कोड के स्थान पर करना चाहते हैं?

उत्तर

16

ColdFusion 8 (अप और) एक struct शाब्दिक अंकन है संलग्न:

नोट: ColdFusion 9 त्रुटियों ऊपर उल्लिखित है, तो के साथ किसी भी सीएफ संस्करण उपलब्ध आजकल आप ठीक हो जाएगा तय की। मैं अभी भी संदर्भ के लिए लिंक में जा रहा हूँ।

+0

इसलिए मूल रूप से आप केवल एक छोटे से वाक्यविन्यास का उपयोग कर सकते हैं जो एक चर-आयाम संरचना को बनाने के लिए उपयोग किया जाता है। लेकिन आप फ्लाई पर फंक्शन पर जाने के लिए एक नहीं बना सकते जैसे मैं चाहता था। मुझे लगता है कि कुछ * चेन * संलग्न की तरह है ... – Kip

+0

लगता है जैसे यह सीएफ 9 में तय किया जाएगा! – Kip

+0

हाँ, "चेन" अधिक सटीक हो सकता है। मैं "एक दिन देर से और एक डॉलर छोटा" के तहत सीएफ 8 संरचना अक्षर दर्ज करूंगा।यकीन नहीं है कि उन्होंने इसे क्यों घुमाया - वर्तमान स्वरूप में, यह अधिक समझ में नहीं आता है। – Tomalak

2

ColdFusion 8 में और आप इस तरह की एक संरचना बना सकते हैं इसके बाद के संस्करण:

<cfset objData = { 
    Key1 = "Value1", 
    Key2 = "Value2" 
} /> 

हालांकि, वहाँ कुछ तार कर रहे हैं:

ref={template="label", language="en"} 
+2

किप, सीएफ 8 में आप सैम कहते हैं, इस वाक्यविन्यास का उपयोग कर सकते हैं, लेकिन आप कार्यों के तर्कों में इसका उपयोग नहीं कर सकते हैं। सीएफ 9 में, आप फंक्शंस में तर्कों में संरचना शॉर्टंड नोटेशन का उपयोग कर सकते हैं; इस प्रकार, उपर्युक्त आपका उदाहरण काम करेगा (इसके बजाए = इसके बजाए: –

3

Railo 3 में और इसके बाद के संस्करण आप इस तरह बनाने के लिए:

  • Struct: struct (क: 1, बी: 2, सी: 3, डी: "aaa")
  • सरणी: सरणी (1 , 2,3, "aaa")
  • क्वेरी: क्वेरी (col1: सरणी (1.1,1.2,1,3), col2: सरणी (2.1,2.2,2,3))
+0

क्या रेलवे के बाद से यह संभव हो गया है। –

1

आप कर सकते थे cfjson का उपयोग करें। एक गुंजाइश आप उपयोग कर रहे हैं (जैसे अनुरोध गुंजाइश) के घटक जोड़ें:

<cfobject name="request.json" component="cfc.json"> 

और इसे कहते चाहते:

<cfset aStructure = request.json.decode('{ Template: "Label", Language: "en" }')> 
5

CF8 में struct वाक्य रचना सरल करने के लिए अपने प्रयास घोंसले तक आ जाते हैं और/या इनलाइन तत्वों की कमी तो आप इस भ्रामक सरल समारोह का उपयोग कर सकते हैं:

<cfscript> 
    function nStruct(){ 
     return arguments; 
    } 
</cfscript> 

फिर आप इस वाक्य विन्यास का उपयोग कर सकते हैं:

<cfdump var="#nStruct(
    a=1, 
    b=nStruct(
     c=2,d=3 
    ) 
)#" /> 
+0

मैंने अपना 'सरणी()' cuz नाम दिया है, यह php में कैसे काम करता है;) –

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

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