匿名函數(閉包函數) 允許臨時創建一個 沒有指定名稱的函數 最經常用作回調函數(callback) 參數的值
閉包函數可以作爲變量的值來使用
$example = function () {
echo 'Hello <br>' ;
} ;
$example() ;
//閉包函數使用 父作用域變量 use() 使用use()接收變量需要在閉包定義之前定義 或者use(&$message)
$message = 'beijing' ;
$example2 = function () use($message){
echo 'welcome to ' . $message . '<br>';
};
$message = 'shanghai' ;
$example2() ;
$example3 = function (){
global $message ;
echo 'welcome to ' . $message . '<br>';
} ;
$message = 'shanghai' ;
$example3() ;
//常規參數 + 父域參數(&$local 不引用地址的話 $local變量需要在閉包定義之前定義)
$example4 = function ($str) use(&$local){
echo $str . $local . '<br>' ;
} ;
$local = 'beijing' ;
$example4('welcome to ') ;
//閉包函數作爲函數參數使用
function test_close($name, $r) {
echo "hello {$name} <br>" ;
$r() ;
}
test_close('zhangsan',function () {
echo 'Redirect to login page' ;
}) ;