Variable avant l'appel d'une fonction anonyme en PHP
Supposons que nous ayons le code suivant :
<?php
$pow = 2;
$func = function($num) use ($pow)
{
return $num ** $pow;
};
echo $func(4);
?>
Le code ci-dessus fonctionne,
car la variable $pow
est écrite avant la déclaration de la fonction.
Cependant, si nous plaçons la déclaration
de la variable avant l'appel de la fonction,
tout cesse de fonctionner :
<?php
$func = function($num) use ($pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Il est possible de corriger le problème en passant la variable par référence :
<?php
$func = function($num) use (&$pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Corrigez le code pour qu'il fonctionne de la manière prévue :
<?php
$func = function() use ($num1, $num2)
{
return $num1 + $num2;
};
$num1 = 2;
$num2 = 3;
echo $func();
?>