Variabele voor aanroep anonieme functie in PHP
Stel we hebben de volgende code:
<?php
$pow = 2;
$func = function($num) use ($pow)
{
return $num ** $pow;
};
echo $func(4);
?>
De bovenstaande code werkt,
omdat de variabele $pow
vóór de functiedeclaratie is geschreven.
Als we echter de declaratie van de variabele
vóór de functieaanroep plaatsen,
stopt alles met werken:
<?php
$func = function($num) use ($pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Het probleem kan worden opgelost door de variabele als referentie door te geven:
<?php
$func = function($num) use (&$pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Corrigeer de code zodat deze op de beoogde manier gaat werken:
<?php
$func = function() use ($num1, $num2)
{
return $num1 + $num2;
};
$num1 = 2;
$num2 = 3;
echo $func();
?>