Tofauti Kabla ya Kuitwa Kazi Isiyojulikana Jina katika PHP

Wacha tuwe na msimbo ufuatao:

php<?php
  $pow = 2;
  
  $func = function($num) use ($pow)
  {
    return $num ** $pow;
  };
  
  echo $func(4);
?>

Msimbo ulio hapo juu unafanya kazi, kwa sababu tofauti $pow imeandikwa kabla ya kutangaza kazi. Hata hivyo, ikiwa tutaweka tangazo la tofauti kabla ya kuitwa kazi, kila kitu kitakoma kufanya kazi:

php<?php
  $func = function($num) use ($pow)
  {
    return $num ** $pow;
  };
  
  $pow = 2;
  echo $func(4);
?>

Inawezekana kurekebisha tatizo, ikiwa tutapitisha tofauti kwa kumbukumbu:

php<?php
  $func = function($num) use (&$pow)
  {
    return $num ** $pow;
  };
  
  $pow = 2;
  echo $func(4);
?>
Задание 1

Rekebisha msimbo, ili uanze kufanya kazi kwa njia iliyokusudiwa:

php<?php
  $func = function() use ($num1, $num2)
  {
    return $num1 + $num2;
  };
  
  $num1 = 2;
  $num2 = 3;
  echo $func();
?>