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