Ссылки в 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);
?>