Ndryshorja para thirrjes së funksionit anonim në PHP
Le të kemi kodin e mëposhtëm:
<?php
$pow = 2;
$func = function($num) use ($pow)
{
return $num ** $pow;
};
echo $func(4);
?>
Kodi i mësipërm funksionon,
pasi ndryshorja $pow
është shkruar para deklarimit të funksionit.
Sidoqoftë, nëse e vendosim deklarimin
e ndryshores para thirrjes së funksionit,
çdo gjë ndalon së funksionuari:
<?php
$func = function($num) use ($pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Problemi mund të korrigjohet nëse kalohet ndryshorja me referencë:
<?php
$func = function($num) use (&$pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Korrigjojeni kodin në mënyrë që të funksionojë sikurse është menduar:
<?php
$func = function() use ($num1, $num2)
{
return $num1 + $num2;
};
$num1 = 2;
$num2 = 3;
echo $func();
?>