Variabel før kall av anonym funksjon i PHP
La oss si vi har følgende kode:
<?php
$pow = 2;
$func = function($num) use ($pow)
{
return $num ** $pow;
};
echo $func(4);
?>
Koden ovenfor fungerer,
fordi variabelen $pow
er skrevet før funksjonsdeklarasjonen.
Men hvis vi plasserer deklarasjonen
av variabelen før funksjonskallet,
slutter alt å fungere:
<?php
$func = function($num) use ($pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Vi kan fikse problemet ved å sende variabelen som referanse:
<?php
$func = function($num) use (&$pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Korriger koden slik at den fungerer på den tiltenkte måten:
<?php
$func = function() use ($num1, $num2)
{
return $num1 + $num2;
};
$num1 = 2;
$num2 = 3;
echo $func();
?>