PHP da Anonim Funksiyani Chaqirishdan Oldin Oʻzgaruvchi
Quyidagi kodimiz bor deb faraz qilaylik:
<?php
$pow = 2;
$func = function($num) use ($pow)
{
return $num ** $pow;
};
echo $func(4);
?>
Yuqoridagi kod ishlaydi,
chunki $pow o'zgaruvchisi
funksiya e'lonidan oldin yozilgan.
Biroq, agar biz o'zgaruvchi e'lonini
funksiya chaqiruvi oldiga qo'ysak,
hamma narsa ishlashni to'xtatadi:
<?php
$func = function($num) use ($pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Muammoni o'zgaruvchini reference (havola) orqali uzatish orqali tuzatish mumkin:
<?php
$func = function($num) use (&$pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Kodni rejalashtirilgan tarzda ishlashi uchun tuzating:
<?php
$func = function() use ($num1, $num2)
{
return $num1 + $num2;
};
$num1 = 2;
$num2 = 3;
echo $func();
?>