Referencat në foreach në PHP
Gjatë punës me ciklin foreach
ndryshimi i variablës për elementët
nuk çon në ndryshime në vetë vargun:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem) {
$elem++;
}
var_dump($arr); // nuk do të ndryshojë
?>
Megjithatë, efekti i dëshiruar mund të arrihet nëse e deklarojmë variablën për elementët si referencë. Në këtë rast, ndryshimet e kësaj variable do të çojnë në ndryshime në varg:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem++;
}
var_dump($arr); // do të ndryshojë
?>
Korrigjoni kodin e mëposhtëm në mënyrë që ai të funksionojë sipas qëllimit të parashikuar:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem = sqrt($elem);
}
var_dump($arr);
?>
Korrigjoni kodin e mëposhtëm në mënyrë që ai të funksionojë sipas qëllimit të parashikuar:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem ** 2;
}
var_dump($arr);
?>