Փոփոխականը անանուն ֆունկցիայի կանչից առաջ 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();
?>