Cosa fa l' =&
operatore di assegnazione (uguale a e commerciale) in PHP?
È deprecato?
Cosa fa l' =&
operatore di assegnazione (uguale a e commerciale) in PHP?
È deprecato?
Risposte:
Non è deprecato ed è improbabile che lo sia. È il modo standard per, ad esempio, fare parte di un array o modifiche speculari di oggetti apportate a un altro, invece di copiare i dati esistenti.
Si chiama assegnazione per riferimento , che, per citare il manuale, "significa che entrambe le variabili finiscono per puntare agli stessi dati, e nulla viene copiato da nessuna parte" .
L'unica cosa che è sconsigliata con =&
è "assegnare il risultato new
per riferimento" in PHP 5 , che può essere fonte di confusione. new
viene assegnato automaticamente per riferimento, quindi &
è ridondante / deprecato in $o = &new C;
, ma non in $o = &$c;
.
Poiché è difficile da cercare, nota che =&
(è uguale a e commerciale ) è uguale a = &
(è uguale a spazio e commerciale ) ed è spesso scritto in modo tale da incorrere nell'altra variabile come $x = &$y['z'];
o $x = &$someVar
(e commerciale nome della variabile con il segno del dollaro ). Esempio semplificato dai documenti:
$a = 3;
$b = &$a;
$a = 4;
print "$b"; // prints 4
Ecco un comodo collegamento a una sezione dettagliata su Assign By Reference nel manuale PHP . Quella pagina fa parte di una serie di riferimenti: vale la pena dedicare un minuto alla lettura dell'intera serie.
Sono due operatori diversi. =
è un compito come probabilmente saprai. E &
significa che si dovrebbe accedere alla variabile per riferimento piuttosto che per valore.