L'operatore = & funziona con riferimenti e non valori. La differenza tra $var2=$var1
e $var2=&$var1
è visibile in questo caso:
$var1 = 1;
$var2 = $var1;
$var1 = 2;
echo $var1 . " " . $var2; // Prints '2 1'
$var1 = 1;
$var2 =& $var1;
$var1 = 2;
echo $var1 . " " . $var2; // Prints '2 2'
Quando si utilizzano i = & operatore non lo dici a $ var2 "prendere il valore di $ var1 ora" invece si dice qualcosa del tipo " Il tuo valore sarà archiviato esattamente nello stesso posto in cui il valore di $ var1 ". Quindi ogni volta che cambi il contenuto di $ var1 o $ var2, vedrai la modifica nelle due variabili.
Per maggiori informazioni sguardo sul PHP.net
EDIT: Per la parte globale, è necessario utilizzare $GLOBALS["a"] =& $local;
Cf. documentazione.
fonte
2010-08-21 10:58:08
controllare il mio esempio, thx. – lovespring
"Se si assegna un riferimento a una variabile dichiarata globale all'interno di una funzione, il riferimento sarà visibile solo all'interno della funzione. È possibile evitarlo utilizzando l'array $ GLOBALS." Controlla il link che ti ho dato, c'è un'intera sezione sui globals. –