Références dans foreach en PHP
Lorsque l'on travaille avec la boucle foreach
la modification de la variable pour les éléments
ne conduit pas à des modifications du tableau lui-même :
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem) {
$elem++;
}
var_dump($arr); // ne changera pas
?>
Cependant, l'effet souhaité peut être obtenu si l'on déclare la variable pour les éléments comme une référence. Dans ce cas, les modifications de cette variable entraîneront des modifications dans le tableau :
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem++;
}
var_dump($arr); // changera
?>
Corrigez le code suivant pour qu'il fonctionne comme prévu :
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem = sqrt($elem);
}
var_dump($arr);
?>
Corrigez le code suivant pour qu'il fonctionne comme prévu :
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem ** 2;
}
var_dump($arr);
?>