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);
?>
समस्या को ठीक किया जा सकता है, यदि चर को संदर्भ (reference) द्वारा पास किया जाए:
<?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();
?>