Spremenljivka pred klicem anonimne funkcije v PHP-ju
Recimo, da imamo naslednjo kodo:
<?php
$pow = 2;
$func = function($num) use ($pow)
{
return $num ** $pow;
};
echo $func(4);
?>
Zgoraj navedena koda deluje,
ker je spremenljivka $pow
napisana pred deklaracijo funkcije.
Vendar, če postavimo deklaracijo
spremenljivke pred klic funkcije,
prestane delovati:
<?php
$func = function($num) use ($pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Težavo lahko popravimo, če posredujemo spremenljivko po referenci:
<?php
$func = function($num) use (&$pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Popravite kodo, da bo delovala na predviden način:
<?php
$func = function() use ($num1, $num2)
{
return $num1 + $num2;
};
$num1 = 2;
$num2 = 3;
echo $func();
?>