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 &![]()


Rispondi quotando