Variable antes de llamar a una función anónima en PHP
Supongamos que tenemos el siguiente código:
<?php
$pow = 2;
$func = function($num) use ($pow)
{
return $num ** $pow;
};
echo $func(4);
?>
El código anterior funciona,
porque la variable $pow
está escrita antes de declarar la función.
Sin embargo, si colocamos la declaración
de la variable antes de llamar a la función,
dejará de funcionar:
<?php
$func = function($num) use ($pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Se puede solucionar el problema si pasamos la variable por referencia:
<?php
$func = function($num) use (&$pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Corrija el código para que funcione de la manera prevista:
<?php
$func = function() use ($num1, $num2)
{
return $num1 + $num2;
};
$num1 = 2;
$num2 = 3;
echo $func();
?>