User Guide

Table Of Contents
About structures 109
A structures key must be a string. The values associated with the key can be any valid ColdFusion
value or object. It can be a string or integer, or a complex object such as an array or another
structure. Because structures can contain any kind of data they provide a very powerful and
flexible mechanism for representing complex data.
Structure notation
ColdFusion supports two types of notation for referencing structure contents. The notation that
you use depends on your requirements.
Referencing complex structures
When a structure contains another structure, you reference the data in the nested structure by
extending either object.property or associative array notation. You can even use a mixture of both
notations.
For example, if structure1 has a key key1 whose value is a structure that has keys struct2key1,
struct2key2, and so on, you can use any of the following references to access the data in the first
key of the embedded structure:
Structure1.key1.Struct2key1
Structure1["key1"].Struct2key1
Structure1.key1["Struct2key1"]
Structure1["key1"]["Struct2key1"]
The following example shows various ways you can reference the contents of a complex structure:
<cfset myArray=ArrayNew(1)>
<cfset myArray[1]="2">
<cfset myArray[2]="3">
<cfset myStruct2=StructNew()>
<cfset myStruct2.struct2key1="4">
Notation Description
Object.property You can refer to a property, prop, of an object, obj, as obj.prop. This
notation, also called dot notation, is useful for simple assignments, as in
this example:
depts.John="Sales"
Use this notation only when you know the property names (keys) in
advance and they are strings, with no special characters, numbers, or
spaces. You cannot use the dot notation when the property, or key, is
dynamic.
Associative arrays If you do not know the key name in advance, or it contains spaces,
numbers, or special characters, you can use associative array notation.
This notation uses structures as arrays with string indexes; for example:
depts["John"]="Sales"
depts[employeeName]="Sales"
You can use a variable (such as employeeName) as an associative array
index. Therefore, you must enclose any literal key names in quotation
marks.
For information on using associative array references containing variables,
see Chapter 4, “Dynamically constructing structure references,” on
page 86.