PHP даги foreach даврда ссылкалар

foreach даври ишлатилганда элементлар учун ўзгартувчини ўзгартириш массивнинг ўзига ўзгартиришлар келтирмайди:

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  foreach ($arr as $elem) {
    $elem++;
  }
  
  var_dump($arr); // ўзгармайди
?>

Бирок, керакли натижага эришиш мумкин, агар элементлар учун ўзгартувчини ссылка сифатида эълон килсак. Бундай ҳолда бу ўзгартувчининг ўзгаришлари массивда ўзгаришларга олиб келади:

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  foreach ($arr as &$elem) {
    $elem++;
  }
  
  var_dump($arr); // ўзгаради
?>
Задание 1

Куйидаги кодни ўзгартиринг, у мўлжаллангандек ишлаши учун:

php<?php
  $arr = [1, 2, 3, 4, 5];

  foreach ($arr as &$elem) {
    $elem = sqrt($elem);
  }
  
  var_dump($arr); 
?>
Задание 2

Куйидаги кодни ўзгартиринг, у мўлжаллангандек ишлаши учун:

php<?php
  $arr = [1, 2, 3, 4, 5];

  foreach ($arr as &$elem) {
    $elem ** 2;
  }
  
  var_dump($arr); 
?>