Rujukan dalam foreach di PHP
Apabila bekerja dengan gelung foreach
perubahan pembolehubah untuk elemen
tidak menyebabkan perubahan pada array itu sendiri:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem) {
$elem++;
}
var_dump($arr); // tidak akan berubah
?>
Walau bagaimanapun, kesan yang diinginkan boleh dicapai, jika kita mengisytiharkan pembolehubah untuk elemen sebagai rujukan. Dalam kes ini, perubahan pembolehubah ini akan menyebabkan perubahan dalam array:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem++;
}
var_dump($arr); // akan berubah
?>
Betulkan kod berikut supaya ia berfungsi seperti yang direncanakan:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem = sqrt($elem);
}
var_dump($arr);
?>
Betulkan kod berikut supaya ia berfungsi seperti yang direncanakan:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem ** 2;
}
var_dump($arr);
?>