Working with Data Structures


CFScript also enables the programmer to simplify the construction of complex data structures. The tag-based structure of ColdFusion can easily become very tedious for this task. Let's say that we want to create a structure of customer billing information; we could do the following:

 <cfset customer = StructNew()>  <cfset customer.ID = FORM.CUSID>  <cfset customer.name = StructNew()>  <cfset  customer.name.first = FORM.FirstName>  <cfset FSET customer.name.last = FORM.LastName>  <cfset customer.billinginfo = StructNew()>  <cfset customer.billinginfo.address = StructNew()>  <cfset customer.billinginfo.address.street = FORM.street>  <cfset customer.billinginfo.address.city = FORM.city>  <cfset customer.billinginfo.address.state = FORM.state>  <cfset customer.billinginfo.address.zipcode = FORM.zipcode> 

In CFScript, we can avoid the use of the CFSET tag and just assign the values to the variable:

 <cfscript>      customer = StructNew();      customer.ID = FORM.cusid;      customer.name = StructNew();      customer.name.first = FORM.firstname;      customer.name.last = FORM.lastname;      customer.billinginfo = StructNew();      customer.billinginfo.address = StructNew();      customer.billinginfo.address.street = FORM.street;      customer.billinginfo.address.city = FORM.city;      customer.billinginfo.address.state = FORM.state;      customer.billinginfo.address.zipcode = FORM.zipcode;  <cfscript> 

The construction of arrays is very similar:

 <cfset array = ArrayNew(1)>  <cfset array[1] = "Bob">  <cfset array[2] = "Alice">  <cfset array[3] = "John">  <cfset array[4] = "Lisa"> 

In CFScript, it looks like the following:

 <cfscript>      array = ArrayNew(1);      array[1] = "Bob";      array[2] = "Alice";      array[3] = "John";      array[4] = "Lisa";  </cfscript> 

Not only is this clearer, but it also saves some typing!



Inside ColdFusion MX
Inside Coldfusion MX
ISBN: 0735713049
EAN: 2147483647
Year: 2005
Pages: 579

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net