Questo è il codice che non capisco (come output).PHP Bug o il mio fraintendimento della lingua?
<?php
$x = ['test1', 'test2', 'test3', 'test4'];
echo "First FOREACH\n";
foreach ($x as &$y)
{
echo $y."\n";
}
echo "\n\nSecond FOREACH\n";
foreach ($x as $y)
{
echo $y."\n";
}
?>
uscita:
First FOREACH
test1
test2
test3
test4
Second FOREACH
test1
test2
test3
test3
PS: Io corro sotto:
php -v
PHP 5.6.11-1ubuntu3.1 (cli)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
@ John, come fa eco l'argomento modificarlo? E, da quello che vedo quando si esegue il codice, il secondo ciclo esegue test1/test1. Qualcosa che l'OP potrebbe aver posto nella domanda se non fosse così odioso :-) – paxdiablo
John .. non hai capito il problema. Per favore, esegui il codice e vedrai cosa intendo. PS: la nuova riga non si aggiunge affatto in questo codice, non vi è alcun cambiamento della variabile $ y da nessuna parte. –
Come mostra l'output, l'elemento finale della matrice è interessato. @paxdiablo se hai una grande spiegazione, ci piacerebbe sentirlo. –