ColdFusion Array Loop Works With ARGUMENTS

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:

<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:

<!--- 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.

I am the co-founder and lead engineer at InVision App, Inc — the world's leading prototyping,
collaboration & workflow platform. I also rock out in JavaScript and ColdFusion 24x7 and I dream about
promise resolving asynchronously.