Референции в foreach в PHP
При работа с цикъл foreach
промяната на променливата за елементите
не води до промени в самия масив:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem) {
$elem++;
}
var_dump($arr); // няма да се промени
?>
Въпреки това, желаният ефект може да се постигне, ако декларираме променливата за елементите като референция. В този случай промените на тази променлива ще доведат до промени в масива:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem++;
}
var_dump($arr); // ще се промени
?>
Коригирайте следния код така, че да работи според замислената идея:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem = sqrt($elem);
}
var_dump($arr);
?>
Коригирайте следния код така, че да работи според замислената идея:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem ** 2;
}
var_dump($arr);
?>