Tofauti Kabla ya Kuitwa Kazi Isiyojulikana Jina katika PHP
Wacha tuwe na msimbo ufuatao:
<?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
$func = function($num) use ($pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Inawezekana kurekebisha tatizo, ikiwa tutapitisha tofauti kwa kumbukumbu:
<?php
$func = function($num) use (&$pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Rekebisha msimbo, ili uanze kufanya kazi kwa njia iliyokusudiwa:
<?php
$func = function() use ($num1, $num2)
{
return $num1 + $num2;
};
$num1 = 2;
$num2 = 3;
echo $func();
?>