PHP에서 foreach의 참조
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);
?>