If I pass a variable to a function, not only the value of the variable is passed. The hole variable is linked to the parameter. If work with the passed parameter and change it, the refering variable is also changed.
In my opinion it should not work this way. All parameters and new described variables should be privately used inside the function.
