Proper way to populate / duplicate an array using ArrayAppend()

Skip to first unread message

Jeff Shood

Mar 3, 2011, 9:35:03 PM3/3/11
to Railo
Due to the differences between the way Coldfusion duplicates arrays
and how railo passes them as a reference some code I'm migrating from
ACF to Railo is breaking. I'd like to learn the right way to do this.

I'm populating an array that will be of a variable length by using the
code below: ( this is part of an error handling script)

var fileDef = arrayNew(1);
var tempArr = arrayNew(1);

tempArr[1] = "Arguments.errorMessage";
tempArr[2] = "errorMessage";

if (isDefined('structCatch.ARGUMENTS.filepath') )
tempArr[1] = "structCatch.ARGUMENTS.filePath";
tempArr[2] = "CB_filePath";

However because Railo passes arrays as a reference in the second block
of code where I change the value of tempArr[2] to CB_filePath, that
change is made to all elements the final array (fileDef)

Should I make a copy of tempArr each time I append to fileDef?
Should I use another function to append?
Should I be doing this a whole different way all-together?

Any advice is appreciated!

AJ Mercer

Mar 3, 2011, 10:29:36 PM3/3/11

Michael Offner

Mar 3, 2011, 10:55:20 PM3/3/11
Like aj write, use the function duplicate before passing the object or with cfargument/the parameter definition you can set the attribute passby="value".


Von meinem iPad gesendet

Reply all
Reply to author
0 new messages