Referințe în foreach în PHP
În lucrul cu bucla foreach
modificarea variabilei pentru elemente
nu duce la modificări ale matricei în sine:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem) {
$elem++;
}
var_dump($arr); // nu se va schimba
?>
Cu toate acestea, efectul dorit poate fi obținut dacă declarăm variabila pentru elemente ca referință. În acest caz, modificările acestei variabile vor duce la modificări în matrice:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem++;
}
var_dump($arr); // se va schimba
?>
Corectați următorul cod astfel încât să funcționeze conform intenției:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem = sqrt($elem);
}
var_dump($arr);
?>
Corectați următorul cod astfel încât să funcționeze conform intenției:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem ** 2;
}
var_dump($arr);
?>