回調(diào)函數(shù):給函數(shù)傳遞一個(gè)函數(shù)作為參數(shù)撮竿;
PHP支持回調(diào)函數(shù)(callback)勃刨,但和JavaScript相比,5.3之前的并不是特別靈活,只有“字符串的函數(shù)名”和“使用creat_function的返回值”兩種選擇岸霹。在5.3之后又多了匿名函數(shù)的選擇;
匿名函數(shù)或閉包實(shí)例
$fun=function($hello){//匿名函數(shù)
echo$hello;
};
$fun("hello kitty");//給匿名函數(shù)傳參數(shù)
?>
匿名函數(shù)作為變量的值來使用贞奋。直接將匿名函數(shù)作為參數(shù)傳給回調(diào)函數(shù)窒篱,是匿名函數(shù)最常見的用法,最后別忘記加上分號(hào)注益。下面是回調(diào)函數(shù)實(shí)例:
functioncallback($call){//聲明函數(shù)callback碴巾,需要傳遞一個(gè)匿名函數(shù)作為參數(shù)
$call();
}
callback(function(){
echo"hello
kitty";//調(diào)用函數(shù)的同時(shí)直接傳入一個(gè)匿名函數(shù)作為參數(shù)
})
//閉包函數(shù)的一個(gè)重要概念就是內(nèi)部函數(shù)和使用外部變量,通過use關(guān)鍵字才能實(shí)現(xiàn)
$string ="字符串";
callback(function()use(&$string){
echo"閉包函數(shù)測試".$string;
})
上面的閉包函數(shù)可以直接調(diào)用外部變量丑搔,而一般函數(shù)是無法訪問外部變量的
還有解決不了的歡迎留言,也可以訪問我的微博,知無不言,菜鳥一枚,感謝觀看? ? http://weibo.com/rosekissyou