associa al nome variabile l' indirizzo e non una copia ... teoricamente php lo fa in automatico ma non e' sempre vero e spesso non ti serve a niente avere copie di variabili o variabili che se modificate creano una copia ...


esempio:

$a = 'pippo';
$b = &$a;

$b = 'pluto';
echo $a; // stampera' pluto


mentre con

$a = 'pippo';
$b = $a;

$b = 'pluto';
echo $a; // stampera' pippo e in automatico php copiera' prima il valore di a in b, poi lo riassocia alla nuova stringa




altro esempio


function somma( &$a, $incrementa ) { $a += $incrementa; }

$a = 2;
somma( $a, 1 );
echo $a; // sara' 3, senza bisogno di usare un return in funzione



function somma( $a, $incrementa ) { $a += $incrementa; }

$a = 2;
somma( $a, 1 );
echo $a; // sara' 2 , quello che accade in funzione non coinvolge $a perche' la $a della funzione sara' una copia di $a e non $a stessa


... altro ancora, la dove non serve una copia, usa la &