Answer:

Original Value of STRING: Dan Howard
Value of STRING after calling upper function: Dan Howard
Value of STRING after calling MY upper function: DAN HOWARD

This happens because your parameter to MyUpper is passed by reference so when MyFunction changes the parameter, it's reflected back in the original variable.

back to Dan Howard's article