En PHP, el operador =&
se utiliza para asignar referencias entre variables. Esto significa que ambas variables apuntan al mismo valor en memoria. Cualquier cambio en una variable se refleja automáticamente en la otra.
=&
Cuando usas el operador =&
, no estás copiando el valor de una variable a otra, sino creando una referencia. Ambas variables se convierten en alias del mismo valor, compartiendo la misma ubicación en memoria.
$a = 5;
$b =& $a; // $b es una referencia a $a
$b = 10;
echo $a; // Salida: 10 (porque $b cambió el valor de $a)
En este caso:
$b
no contiene una copia de $a
, sino que ambas comparten el mismo valor en memoria.
$b
afecta directamente a $a
y viceversa.
=&
)
1. Para ahorrar memoria en casos donde manejar una copia de un valor grande sería ineficiente.
2. Cuando necesitas sincronizar variables de manera que un cambio en una afecte a la otra.
3. En funciones que devuelven referencias, para permitir modificar directamente el valor retornado.
function &obtenerReferencia(&$var) {
return $var;
}
$x = 20;
$y =& obtenerReferencia($x);
$y = 50;
echo $x; // Salida: 50
Aquí, $y
es una referencia a $x
. Al modificar $y
, también cambia $x
.
=&
1. Uso con cuidado: El uso excesivo de referencias puede complicar el código y dificultar la depuración.
2. Deprecación en algunos casos: A partir de PHP 7.0, las referencias en asignaciones como list()
están deprecadas.
function incrementar(&$numero) {
$numero++;
}
$a = 10;
incrementar($a);
echo $a; // Salida: 11
En este ejemplo, el parámetro $numero
es una referencia a $a
, por lo que los cambios realizados dentro de la función afectan a la variable original.
Puedes consultar más sobre referencias en la documentación oficial de PHP.
Jorge García
Fullstack developer