Mainīgais pirms anonīmas funkcijas izsaukšanas PHP
Pieņemsim, ka mums ir šāds kods:
<?php
$pow = 2;
$func = function($num) use ($pow)
{
return $num ** $pow;
};
echo $func(4);
?>
Iepriekš minētais kods darbojas,
jo mainīgais $pow
ir uzrakstīts pirms funkcijas deklarēšanas.
Tomēr, ja mēs novietosim mainīgā deklarēšanu
pirms funkcijas izsaukšanas,
vispārstās darboties:
<?php
$func = function($num) use ($pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Problēmu var izlabot, ja padod mainīgo pa reference:
<?php
$func = function($num) use (&$pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Izlabojiet kodu, lai tas darbotos paredzētajā veidā:
<?php
$func = function() use ($num1, $num2)
{
return $num1 + $num2;
};
$num1 = 2;
$num2 = 3;
echo $func();
?>