El primer bucle foreach no hace ningún cambio en el array, tal como lo esperaríamos. Sin embargo, se debe asignar a $v
una referencia a cada uno de los elementos de $a
, , de modo que, cuando finaliza el primer ciclo, $v
es, de hecho, una referencia a $a[2]
.
Tan pronto como se inicia el segundo ciclo, $v
ahora tiene asignado el valor de cada elemento . Sin embargo, $v
ya es una referencia a $a[2];
, por lo tanto, cualquier valor asignado se copiará automáticamente en el último elemento de la matriz.
Por lo tanto, durante la primera iteración, $a[2]
se convertirá en cero, luego en uno, y luego una vez más, siendo efectivamente copiado en sí mismo. Para resolver este problema, siempre debe desarmar las variables que utiliza en los bucles by-reference foreach forech o, mejor aún, evitar usar el anterior por completo.
¿Qué significa * "creo que es normal, pero la web lo vi op ......... entonces ... ahh wat is it" * mean? –
¡Me lo estoy preguntando! ¿Por qué obtener este resultado? :) –
@Bart Kiers: Parece aturdido. – BoltClock