Operador de asignación PHP = &

Posible duplicado:
Operador de asignación de referencia en php = &

¿Qué significa el operador = & assignment en PHP? No pude encontrar ninguna referencia en el Manual de PHP en la sección de asignación.

Lo vi en una instanciación de clases, así que no entiendo cuál es la diferencia entre = & y únicamente = .

Significa asignación de referencia .

Hay dos diferencias entre = y =& .

Primero, = no crea conjuntos de referencia:

 $a = 1; $b = $a; $a = 5; //$b is still 1 

Por otro lado, el operador =& crea conjuntos de referencia:

 $a = 1; $b = &$a; $a = 5; //$b is also 5 

Segundo, = cambia el valor de todas las variables en el conjunto de referencia, mientras que &= rompe el conjunto de referencia. Compare el ejemplo anterior con esto:

 $a = 1; $b = &$a; $c = 5; $a = &$c; //$a is 5, $b is 1 

Se llama Asignación de referencia. Hace que la variable asignada apunte al mismo valor que la variable asignada.

En PHP 4, esto era bastante común al asignar objetos y matrices, de lo contrario, obtendría una copia del objeto o matriz. Esto fue malo para la administración de la memoria y también para ciertos tipos de progtwigción.

En PHP 5, los objetos y las matrices se cuentan por referencia, no se copian, por lo que la asignación de referencia se necesita con mucha menos frecuencia. Algunos progtwigdores todavía lo usan ‘por las dudas’ PHP por alguna razón decide que una copia tiene sentido allí. Pero una asignación de referencia sigue siendo válida de otras maneras, como con las variables escalares, que normalmente se copian en la asignación.

Es una tarea de referencia que en realidad son dos operadores diferentes.

El = es la asignación y el & accede al valor de la derecha por referencia.