ცვლადი ანონიმური ფუნქციის გამოძახებამდე PHP-ში
დავუშვათ, გვაქვს შემდეგი კოდი:
<?php
$pow = 2;
$func = function($num) use ($pow)
{
return $num ** $pow;
};
echo $func(4);
?>
ზემოთ მოცემული კოდი მუშაობს,
რადგან ცვლადი $pow
დაწერილია ფუნქციის გამოცხადებამდე.
თუმცა, თუ ცვლადის გამოცხადებას
ფუნქციის გამოძახებამდე დავსვამთ,
ყველაფერი შეწყვეტს მუშაობას:
<?php
$func = function($num) use ($pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
პრობლემის გამოსწორება შესაძლებელია, თუ გადავცემთ ცვლადს მითითებით:
<?php
$func = function($num) use (&$pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
გამასწორეთ კოდი, რომ იგი იმუშაოს დაგეგმილი წესით:
<?php
$func = function() use ($num1, $num2)
{
return $num1 + $num2;
};
$num1 = 2;
$num2 = 3;
echo $func();
?>