Link in foreach in PHP
Quando si lavora con il ciclo foreach
la modifica della variabile per gli elementi
non porta a modifiche nell'array stesso:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem) {
$elem++;
}
var_dump($arr); // non cambierà
?>
Tuttavia, l'effetto desiderato può essere ottenuto se si dichiara la variabile per gli elementi come riferimento. In questo caso, le modifiche a questa variabile porteranno a modifiche nell'array:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem++;
}
var_dump($arr); // cambierà
?>
Correggi il seguente codice in modo che funzioni come previsto:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem = sqrt($elem);
}
var_dump($arr);
?>
Correggi il seguente codice in modo che funzioni come previsto:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem ** 2;
}
var_dump($arr);
?>