Променљива пред позивом анонимне функције у 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();
?>