Reference v foreach v PHP
Při práci se smyčkou foreach
změna proměnné pro prvky
nevede ke změnám samotného pole:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem) {
$elem++;
}
var_dump($arr); // nezmění se
?>
Požadovaného efektu však lze dosáhnout, pokud deklarujeme proměnnou pro prvky jako referenci. V tomto případě změny této proměnné povedou ke změnám v poli:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem++;
}
var_dump($arr); // změní se
?>
Opravte následující kód tak, aby fungoval podle záměru:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem = sqrt($elem);
}
var_dump($arr);
?>
Opravte následující kód tak, aby fungoval podle záměru:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem ** 2;
}
var_dump($arr);
?>