ColdFusion Array Loop Works With ARGUMENTS

Posted December 27, 2007 at 7:38 AM

Tags: ColdFusion

As a quick follow up to my post yesterday on using ColdFusion 8's new array iteration via CFLoop, I thought I would check to see if array iteration worked on another "pseudo array", the function ARGUMENTS scope. The ARGUMENTS scope is a very interesting object that has both struct and array properties, meaning, it can be accessed both by key and by index value. As this object only has array-like behavior and is not a true array, it is not clear as to how much array manipulation will be possible. To test this, all I did was set up a function that takes its ARGUMENTS scope and loops over it, CFDumping out each value:

 Launch code in new window » Download code as text file »

  • <cffunction
  • name="LoopArguments"
  • access="public"
  • returntype="void"
  • output="true"
  • hint="Iterates over the arguments array.">
  •  
  • <!--- Define the local scope. --->
  • <cfset var LOCAL = {} />
  •  
  • <!--- Iterate over the arguments as if it were an array. --->
  • <cfloop
  • index="LOCAL.Value"
  • array="#ARGUMENTS#">
  •  
  • <!--- Dump out data element. --->
  • <cfdump
  • var="[#LOCAL.Value#]"
  • label="ARGUMENTS Data Point"
  • />
  •  
  • </cfloop>
  •  
  • <!--- Return out. --->
  • <cfreturn />
  • </cffunction>

In the CFDump tag, I am including the brackets for visible value deliniation; this means that only string values can be passed to the function, but this should work the same, functionally, with any type of value. Now, we just run the code:

 Launch code in new window » Download code as text file »

  • <!--- Call function with various values. --->
  • <cfset LoopArguments(
  • "Itty",
  • "Bitty",
  • "Kitty",
  • "Club"
  • ) />

It works perfectly, giving us the CFDump output:

[Itty] [Bitty] [Kitty] [Club]

Cool; ColdFusion 8's new array iteration works fine with the array-like behavior of the ARGUMENTS scope.

Download Code Snippet ZIP File

Post Comment  |  Ask Ben  |  Permalink  |  Other Searches  |  Print Page





Reader Comments

Dec 27, 2007 at 11:57 AM // reply »
97 Comments

I'd like to see you turn your prodigious investigative powers to what does and does not work with the cfscript loop:

for (i in someVar) { ... }

I know it works for structs (I use it a lot), but what else works with it.


Dec 27, 2007 at 1:09 PM // reply »
6,516 Comments

@Sean,

Not a bad idea. I rarely play around with CFScript, so it would be good to do some snooping. I know that you can finally use things like >= and <. Let me see what I can find out.


Post Comment  |  Ask Ben

Recent Blog Comments
Nov 20, 2009 at 11:32 PM
Five Months Without Hungarian Notation And I'm Loving It
I've used headless camel case for years for not only ColdFusion variables, but also SQL tables and fields... pretty much everything involving code. I also subscribe to the "don't abbreviate and clea ... read »
Nov 20, 2009 at 11:00 PM
Five Months Without Hungarian Notation And I'm Loving It
@Marcel, Yeah, I always err on the side of longer but more readable variable names. As for the camel casing of CF methods and the headless camel casing of custom items, I get around this by always ... read »
Nov 20, 2009 at 10:56 PM
Five Months Without Hungarian Notation And I'm Loving It
I use the following and love it: my.namespace.MyComponents.functionMethodsOrUDF() CONSTANT_VALUES_OR_PROPERTIES One thing I always try is to CamelCaseBuiltInColdFusionFunctions() so others can tell ... read »
Nov 20, 2009 at 5:38 PM
Learning ColdFusion 8: CFImage Part I - Reading And Writing Images
Hi Ben, Great article. I've been looking around to see if ColdFusion image engine can programatically create the following "wrap around" effect: http://www.creativepro.com/article/photoshop-s-she ... read »
Nov 20, 2009 at 5:35 PM
Maintaining ColdFusion Sessions Across SMS Text Message Requests Without Cookies
@Dave: I talked to Gert he suggested: <cfhttp method="get" url="http://{some cf website}" result="stuff" addtoken="yes" /> Note the addition of cfhttp attribute addtoken. That should persist y ... read »
Nov 20, 2009 at 5:23 PM
Maintaining ColdFusion Sessions Across SMS Text Message Requests Without Cookies
@Todd, Ahh, gotcha, yeah that makes sense. ... read »
Nov 20, 2009 at 5:17 PM
Maintaining ColdFusion Sessions Across SMS Text Message Requests Without Cookies
Ben, sorry if I didn't make this clear. You can make it work like that if you want, just put <cfset session.foo = 1> (and <cfset application.foo = 1>) in your OnRequestStart() and it reve ... read »