PHP даги foreach даврда ссылкалар
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);
?>