If tutorials available on this website are helpful for you, please whitelist this website in your ad blocker😭 or Donate to help us ❤️ pay for the web hosting to keep the website running.
Anonymous Functions , जैसा कि नाम से ही ही मालूम होता है ऐसे functions जिनका कोई name नहीं है , Yes PHP हमें ये facility provide करती है कि हम without name के functions भी define कर सके। Anonymous Functions Closure Functions भी कहते हैं।
Anonymous Functions internally Closure class का use करते हैं।
$var_ame = function() { //write logic here }
File :anonymous_fun.php
<?php
$var = function()
{
echo"Print Inside Anonymous Function";
};
$var();
?>
Note - Anonymous Functions define करते समय curly brackets के बाद semicolon ( ; ) लगाना न भूलें otherwise PHP Fatal Error Generate कर देगी।
Normal Functions की तरह ही Anonymous Functions में भी हम arguments pass कर सकते हैं। पिछले Topic में हमने Variable Length Arguments Functions के बारे में पढ़ा , उसी तरह से इसमें भी variable Length Arguments handle कर सकते हैं।
See Example
File : anonymous_fun2.php
<?php
$my_fun = function()
{
echo"This is normal anonymous function.";
};
$my_fun();
echo"<br>";
/* function to handle variable list arguments */
$list_fun = function(...$x)
{
echo"<pre>";
print_r($x);
};
$list_fun(23,45,67,889);
?>
Array ( [0] => 23 [1] => 45 [2] => 67 [3] => 889 )
See Examples
File : anonymous_fun3.php
<?php
$ex_var = 'External Variable';
/* we can't access external variable directly */
$fun = function()
{
echo var_dump($ex_var);
};
$fun();
/* we can use like this */
$fun = function() use($ex_var)
{
echo var_dump($ex_var);
};
$fun();
/* we can do this */
$fun = function($param) use($ex_var)
{
echo var_dump($ex_var." ".$ex_var);
};
$fun($ex_var);
/* we can't modify variable value by passing the value */
$fun = function(&$param)
{
$ex_var.=' modified';
echo var_dump($ex_var);
};
$fun($ex_var);
/* we can modify variable value using like this */
$fun = function() use(&$ex_var)
{
$ex_var.=' modified';
echo var_dump($ex_var);
};
$fun($ex_var);
echo'After Modify variable value : '.$ex_var;
?>