Ссылка в PHP - это псевдоним (alias) для переменной, а не указатель на память (как в C).
$a = 1;
$b = &$a; // $b - ссылка на $a
$b = 2;
echo $a; // 2 (изменилось!)
unset($b); // удаляет только псевдоним
echo $a; // 2 (значение осталось)
По значению - функция получает копию (с copy-on-write):
function add($x) { $x++; }
$n = 5;
add($n);
echo $n; // 5 (не изменилось)
По ссылке - функция работает с оригиналом:
function add(&$x) { $x++; }
$n = 5;
add($n);
echo $n; // 6 (изменилось)