PHPda foreach siklidagi havolalar
foreach sikli bilan ishlashda
elementlar uchun o'zgaruvchini o'zgartirish
massivning o'ziga o'zgartirishlar kiritmaydi:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem) {
$elem++;
}
var_dump($arr); // o'zgarmaydi
?>
Biroq, agar elementlar uchun o'zgaruvchini havola sifatida e'lon qilsak, kerakli natijaga erishish mumkin. Bu holda ushbu o'zgaruvchidagi o'zgartirishlar massivda ham o'zgarishlarga olib keladi:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem++;
}
var_dump($arr); // o'zgaradi
?>
Quyidagi kodni rejalashtirilganidek ishlash uchun tuzating:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem = sqrt($elem);
}
var_dump($arr);
?>
Quyidagi kodni rejalashtirilganidek ishlash uchun tuzating:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem ** 2;
}
var_dump($arr);
?>