Implicit Structure Notation ColdFusion

coldfusion

Implicit Structure Notation was added to ColdFusion 8, this allows you to create a struct on the fly in one line.

Here's a simple example of how the new short hand notation works:

<cfset person = { firstname="Pete", lastname="Freitag" }>

In Prior versions we might have done something like this, which is equivalent to the above code:

<cfset person = StructNew()>
<cfset person.firstname = "Pete">
<cfset person.lastname = "Freitag">

As you can see the new shortcut notation is very handy!



Related Entries

1 person found this page useful, what do you think?

 Download FuseGuard WAF for ColdFusion

Trackbacks

Trackback Address: 729/A04F5ECEF858FAADB7BD0ABE353C7DB1

Comments

On 12/23/2011 at 12:42:03 PM EST Erick Wilson wrote:
1
Pete, I know this is an old thread, but let me know if you've ever run into this problem before and know WHY it's doing it.

Put this code in a CFM file and run it to see what it's doing.

<cfscript> //testMethod(): testing the structure notation of CF public any function testMethod(required any arg1, required struct arg2, string arg3){ return arguments; }

goodStruct = StructNew(); goodStruct.var1 = DateFormat(Now(), 'mmm. d, yyyy'); goodStruct.var2 = testMethod(arg1=12, arg2={key1="value1",key2="value2"}, arg3="Good"); goodStruct.var3 = CreateODBCDateTime(Now());

badStruct = StructNew(); if(1 == 1){ badStruct.var1 = DateFormat(Now(), 'mmm. d, yyyy'); badStruct.var2 = testMethod(arg1=12, arg2={key1="value1",key2="value2"}, arg3="Good"); badStruct.var3 = CreateODBCDateTime(Now()); } </cfscript>

<cfdump var="#goodStruct#" label="Good Struct"> <p>The above struct is NOT created inside an if statement and thus works as expected.<br/></p>

<cfdump var="#badStruct#" label="Bad Struct"> <p>The above struct IS created inside an if statment and notice how the other variables get filled, but variable 1 gets removed from the struct?</p> <p>We know the IF statement is working because the other 2 variables get created and filled with expected data, but the first variable gets removed from the struct or is never set (my bet is on the former).</p>

Sure would be interested in your take on the situation.

Thanks

On 12/23/2011 at 12:42:57 PM EST Erick Wilson wrote:
2
Forgot to mention, this is running on Adobe CF 9.01

Post a Comment




  



Spell Checker by Foundeo

Recent Entries



foundeo


did you hack my cf?