Variabilă înainte de apelul funcției anonime în PHP
Să presupunem că avem următorul cod:
<?php
$pow = 2;
$func = function($num) use ($pow)
{
return $num ** $pow;
};
echo $func(4);
?>
Codul de mai sus funcționează,
deorece variabila $pow
este scrisă înainte de declararea funcției.
Cu toate acestea, dacă plasăm declararea
variabilei înaintea apelului funcției,
încetează să mai funcționeze:
<?php
$func = function($num) use ($pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Putem remedia problema dacă transmitem variabila prin referință:
<?php
$func = function($num) use (&$pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Corectați codul, astfel încât să funcționeze modul intenționat:
<?php
$func = function() use ($num1, $num2)
{
return $num1 + $num2;
};
$num1 = 2;
$num2 = 3;
echo $func();
?>