Verwysings in foreach in PHP
Wanneer jy met die foreach-lus werk,
lei die verandering van die veranderlike vir elemente
nie tot veranderinge in die array self nie:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem) {
$elem++;
}
var_dump($arr); // sal nie verander nie
?>
Die verlangde effek kan egter bereik word as jy die veranderlike vir elemente as 'n verwysing verklaar. In hierdie geval sal veranderinge van hierdie veranderlike lei tot veranderinge in die array:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem++;
}
var_dump($arr); // sal verander
?>
Korrigeer die volgende kode sodat dit werk volgens die bedoeling:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem = sqrt($elem);
}
var_dump($arr);
?>
Korrigeer die volgende kode sodat dit werk volgens die bedoeling:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem ** 2;
}
var_dump($arr);
?>