ბმულები foreach-ში PHP-ში
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);
?>