php自定義函數(shù)之匿名函數(shù)
所謂匿名,就是沒(méi)有名字。
匿名函數(shù),也就是沒(méi)有函數(shù)名的函數(shù)。
匿名函數(shù)的第一種用法,直接把賦數(shù)賦值給變量,調(diào)用變量即為調(diào)用函數(shù)。
匿名函數(shù)的寫(xiě)法比較靈活。
1.變量函數(shù)式的匿名函數(shù)
<?php $greet = function($name) { echo $name.',你好'; }; $greet('明天'); $greet('PHP中文網(wǎng)'); ?>
上例中的函數(shù)體沒(méi)有函數(shù)名,通過(guò)$greent加上括號(hào)來(lái)調(diào)用的,這就是匿名函數(shù)。
2.回調(diào)式的匿名函數(shù)
我們將之前的例子拿過(guò)來(lái)。實(shí)際使用場(chǎng)景中,我們要通過(guò)一個(gè)函數(shù)實(shí)現(xiàn)更多的功能。但是,我又不想專(zhuān)門(mén)定義一個(gè)函數(shù)。我們回顧一下,我們回調(diào)函數(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ù),參見(jiàn)變量函數(shù)這一章 echo $one + $two + $func($one,$two); } woziji(20,30,function( $foo , $bar){ $result = ($foo+$bar)*2; return $result; } ); ?>
仔細(xì)推理一下過(guò)程喲。只不過(guò)在之前的章節(jié)當(dāng)中,plusx2換成了我們的匿名函數(shù):
<?php function( $foo , $bar){ $result = ($foo+$bar)*2; return $result; } ?>
因此,函名函數(shù)在調(diào)用的時(shí)候沒(méi)有函數(shù)名。我們可以采用以上的一些方法來(lái)使用匿名函數(shù)。