Las Referencias en PHP te permiten lograr que dos variables "apunten"
al mismo contenido. Cuando haces algo como:
significa que
$a y
$b
apuntan a la misma variable.
Nota:
$a y $b son completamente iguales, no es que $a esté apuntando a
$b o viceversa, sino que tanto
$a como $b apuntan al mismo lugar.
La misma sintáxis puede ser utilizada con funciones, que devuelven Referencias,
y con el operador new (en PHP 4.0.4 o superior):
Nota:
El no utilizar el operador & causa que
el objeto sea copiado en memoria. Si utilizamos $this
en la clase, entonces actuaremos sobre la instancia actual de
la clase. Las asignaciones sin & harán una
copia de la instancia (por ejemplo, del objeto) y $this
operará en la copia, lo que no siempre es el comportamiento
deseado. Usualmente se desea utilizar una sola instancia, debido
a razones de memoria y performance de la aplicación.
Mientras que se puede utilizar @ para
silenciar cualquier error en el constructor
utilizando @new, esto no funciona cuando
utilizamos &new. Esto es una limitación
del Zend Engine y por lo tanto, resultará en un error de sintáxis.
Otro uso que se le puede dar a las referencias es el traspaso de variables
por-referencia. Esto se logra haciendo que una variable 'local' a la
función y una variable en el script 'referencien' al mismo contenido.
Por ejemplo:
hará que
$a valga 6. Esto es posible porque en
la funció
foo, la variable
$var
'referencia' al mismo contenido que la variable
$a. Más
información acerca de
paso por referencia.
Un tercer uso de las referencias es el retorno por referencia.