Variabel före anrop av anonym funktion i PHP
Låt oss säga att vi har följande kod:
<?php
$pow = 2;
$func = function($num) use ($pow)
{
return $num ** $pow;
};
echo $func(4);
?>
Koden ovan fungerar,
eftersom variabeln $pow
skrivs före funktionsdeklarationen.
Men om vi sätter deklarationen
av variabeln före funktionsanropet,
slutar allt att fungera:
<?php
$func = function($num) use ($pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Man kan åtgärda problemet genom att skicka variabeln via referens:
<?php
$func = function($num) use (&$pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Rätta koden så att den fungerar på det avsedda sättet:
<?php
$func = function() use ($num1, $num2)
{
return $num1 + $num2;
};
$num1 = 2;
$num2 = 3;
echo $func();
?>