Հղումները 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); 
?>