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();
?>