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