php自訂函數(shù)之匿名函數(shù)
所謂匿名,就是沒有名字。
匿名函數(shù),也就是沒有函數(shù)名稱的函數(shù)。
匿名函數(shù)的第一種用法,直接把賦數(shù)賦值給變量,呼叫變數(shù)即為呼叫函數(shù)。
匿名函數(shù)的寫法比較靈活。
1.變數(shù)函數(shù)式的匿名函數(shù)
<?php $greet = function($name) { echo $name.',你好'; }; $greet('明天'); $greet('PHP中文網(wǎng)'); ?>
上例中的函數(shù)體沒有函數(shù)名,透過$greent加上括號(hào)來呼叫的,這就是匿名函數(shù)。
2.回呼式的匿名函數(shù)
我們將之前的範(fàn)例拿過來。實(shí)際使用場(chǎng)景中,我們要透過一個(gè)函數(shù)來實(shí)現(xiàn)更多的功能。但是,我又不想專門定義一個(gè)函數(shù)。我們回顧一下,我們回呼函數(shù)的例子:
<?php function woziji($one,$two,$func){ //我規(guī)定:檢查$func是否是函數(shù),如果不是函數(shù)停止執(zhí)行本段代碼,返回false if(!is_callable($func)){ return false; } //我把$one、$two相加,再把$one和$two傳入$func這個(gè)函數(shù)中處理一次 //$func是一個(gè)變量函數(shù),參見變量函數(shù)這一章 echo $one + $two + $func($one,$two); } woziji(20,30,function( $foo , $bar){ $result = ($foo+$bar)*2; return $result; } ); ?>
仔細(xì)推理一下過程喲。只不過在先前的章節(jié)當(dāng)中,plusx2換成了我們的匿名函數(shù):
<?php function( $foo , $bar){ $result = ($foo+$bar)*2; return $result; } ?>
因此,函名函數(shù)在呼叫的時(shí)候沒有函數(shù)名稱。我們可以採用以上的一些方法來使用匿名函數(shù)。