Variabile prima della chiamata di una funzione anonima in PHP
Supponiamo di avere il seguente codice:
<?php
$pow = 2;
$func = function($num) use ($pow)
{
return $num ** $pow;
};
echo $func(4);
?>
Il codice sopra funziona,
perché la variabile $pow
è scritta prima della dichiarazione della funzione.
Tuttavia, se mettiamo la dichiarazione
della variabile prima della chiamata della funzione,
smette di funzionare:
<?php
$func = function($num) use ($pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Possiamo risolvere il problema passando la variabile per riferimento:
<?php
$func = function($num) use (&$pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Correggi il codice in modo che funzioni nel modo previsto:
<?php
$func = function() use ($num1, $num2)
{
return $num1 + $num2;
};
$num1 = 2;
$num2 = 3;
echo $func();
?>