php自訂函數之匿名函數LOGIN

php自訂函數之匿名函數

所謂匿名,就是沒有名字。

匿名函數,也就是沒有函數名稱的函數。

匿名函數的第一種用法,直接把賦數賦值給變量,呼叫變數即為呼叫函數。

匿名函數的寫法比較靈活。

1.變數函數式的匿名函數

<?php
$greet = function($name)
{
 echo $name.',你好';
};
$greet('明天');
$greet('PHP中文网');
?>

上例中的函數體沒有函數名,透過$greent加上括號來呼叫的,這就是匿名函數。

2.回呼式的匿名函數

我們將之前的範例拿過來。實際使用場景中,我們要透過一個函數來實現更多的功能。但是,我又不想專門定義一個函數。我們回顧一下,我們回呼函數的例子:

<?php
function woziji($one,$two,$func){
       //我规定:检查$func是否是函数,如果不是函数停止执行本段代码,返回false
       if(!is_callable($func)){
               return false;
       }

       //我把$one、$two相加,再把$one和$two传入$func这个函数中处理一次
       //$func是一个变量函数,参见变量函数这一章
       echo $one + $two + $func($one,$two);

}

woziji(20,30,function( $foo , $bar){

               $result = ($foo+$bar)*2;

               return $result;

           }
);
?>

仔細推理一下過程喲。只不過在先前的章節當中,plusx2換成了我們的匿名函數:

<?php

function( $foo , $bar){

       $result = ($foo+$bar)*2;

       return $result;

}
?>

因此,函名函數在呼叫的時候沒有函數名稱。我們可以採用以上的一些方法來使用匿名函數。


下一節
<?php function( $foo , $bar){ $result = ($foo+$bar)*2; return $result; } ?>
章節課件