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