Il primo ciclo foreach non fa alcuna modifica al array, proprio come ci aspetteremmo. Tuttavia, è necessario assegnare a $v
un riferimento a ciascuno degli elementi di $a
, in modo che, al termine del primo ciclo, $v
sia, di fatto, un riferimento a $a[2]
.
Non appena viene avviato il secondo ciclo, a $v
viene ora assegnato il valore di ciascun elemento . Tuttavia, $v
è già un riferimento a $a[2];
pertanto, qualsiasi valore assegnato a verrà copiato automaticamente nell'ultimo elemento dell'array!
Così, durante la prima iterazione, $a[2]
diventerà zero, quindi uno, e quindi uno di nuovo, essendo effettivamente copiato su se stesso. Per risolvere questo problema, è necessario impostare sempre per annullare le variabili che si utilizzano nei cicli foreach di riferimento foreach o, meglio ancora, evitare di utilizzare il primo insieme.
Che cosa * "penso, il suo normale prog ma web ho visto op ......... allora .... ahh wat is it" * mean? –
mi chiedo !!! Perché ottenere questo risultato ?? :) –
@Bart Kiers: Sembra in stato confusionale. – BoltClock