Viungo katika foreach katika PHP

Wakati wa kufanya kazi na kitanzi foreach mabadiliko ya kutofautisha kwa vipengele haisababishi mabadiliko katika safu yenyewe:

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  foreach ($arr as $elem) {
    $elem++;
  }
  
  var_dump($arr); // haitabadilika
?>

Hata hivyo, athari inayohitajika inaweza kufikiwa, kama tukitangaza kutofautisha kwa vipengele kuwa kiungo. Katika hali hii, mabadiliko ya kutofautisha hii yatasababisha mabadiliko katika safu:

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

Rekebisha msimbo ufuatao ili ufanye kazi kulingana na iliyokusudiwa:

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

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

Rekebisha msimbo ufuatao ili ufanye kazi kulingana na iliyokusudiwa:

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

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