Referensi dalam foreach di PHP
Saat bekerja dengan loop foreach,
mengubah variabel untuk elemen
tidak mengubah array itu sendiri:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem) {
$elem++;
}
var_dump($arr); // tidak berubah
?>
Namun, efek yang diinginkan dapat dicapai jika variabel untuk elemen dideklarasikan sebagai referensi. Dalam hal ini, perubahan pada variabel ini akan menyebabkan perubahan pada array:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem++;
}
var_dump($arr); // akan berubah
?>
Perbaiki kode berikut agar berfungsi sesuai dengan yang dimaksud:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem = sqrt($elem);
}
var_dump($arr);
?>
Perbaiki kode berikut agar berfungsi sesuai dengan yang dimaksud:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem ** 2;
}
var_dump($arr);
?>