PHP-де анонимды функцияны шақырмас бұрынғы айнымалы
Бізде келесі код бар делік:
<?php
$pow = 2;
$func = function($num) use ($pow)
{
return $num ** $pow;
};
echo $func(4);
?>
Жоғарыдағы код жұмыс істейді,
себебі $pow айнымалысы
функцияны жариялаудан бұрын жазылған.
Алайда, егер біз айнымалыны жариялауды
функцияны шақырмас бұрын қойсақ,
бәрі жұмысын тоқтатады:
<?php
$func = function($num) use ($pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Егер айнымалыны сілтеме бойынша берсек, мәселені түзеуге болады:
<?php
$func = function($num) use (&$pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Код жоспарланған түрде жұмыс істеуі үшін түзеңіз:
<?php
$func = function() use ($num1, $num2)
{
return $num1 + $num2;
};
$num1 = 2;
$num2 = 3;
echo $func();
?>