Variável antes da chamada de uma função anônima em PHP
Suponha que temos o seguinte código:
<?php
$pow = 2;
$func = function($num) use ($pow)
{
return $num ** $pow;
};
echo $func(4);
?>
O código acima funciona,
porque a variável $pow
está escrita antes da declaração da função.
No entanto, se colocarmos a declaração
da variável antes da chamada da função,
tudo para de funcionar:
<?php
$func = function($num) use ($pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Podemos corrigir o problema passando a variável por referência:
<?php
$func = function($num) use (&$pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Corrija o código para que ele funcione da maneira planejada:
<?php
$func = function() use ($num1, $num2)
{
return $num1 + $num2;
};
$num1 = 2;
$num2 = 3;
echo $func();
?>