You seem to have taken all the variables out of context so I cannot say what your trying to achieve. So for the variables I cannot say.
the & in front of a variable is just a reference PHP 5 this is actually built in so the & is not required although you wouldnt get a syntax error if you did so.
If the & was not there the variable would simply be copied to memory taking a few more bytes of memory now depending on the data stored the amount of times this is used and the server load this isnt a big deal however with many of these copies of variables going around functions it will start to slow down now referencing on the other hand doent copy the variable it simply refers the variables location and the function goes from there. So since its not copying the variable the following is true and will work
<?php
function add_some_extra(&$string)
{
$string .= 'and something extra.';
}
$str = 'This is a string, ';
add_some_extra($str);
echo $str; // outputs 'This is a string, and something extra.'
?>
If that & wasnt there we would have to return the new concatenated string. As its copied (meaning its a different variable being used).
Im sure Ive probably not explained this well enough so you may find something here http://www.php.net/manual/en/functions.arguments.php