Skip to main content
Ben Nadel at cf.Objective() 2017 (Washington, D.C.) with: Gavin Pickin
Ben Nadel at cf.Objective() 2017 (Washington, D.C.) with: Gavin Pickin ( @gpickin )

ColdFusion Array Loop Works With ARGUMENTS

By
Published in Comments (2)

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.

Want to use code from this post? Check out the license.

Reader Comments

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

15,708 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.

I believe in love. I believe in compassion. I believe in human rights. I believe that we can afford to give more of these gifts to the world around us because it costs us nothing to be decent and kind and understanding. And, I want you to know that when you land on this site, you are accepted for who you are, no matter how you identify, what truths you live, or whatever kind of goofy shit makes you feel alive! Rock on with your bad self!
Ben Nadel