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);
?>
Кодни ўз режалаштирилган usulda ишлаши учун тузатинг:
<?php
$func = function() use ($num1, $num2)
{
return $num1 + $num2;
};
$num1 = 2;
$num2 = 3;
echo $func();
?>