ბმულები foreach-ში PHP-ში

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); 
?>