1. 程式人生 > >[PHP] PHP閉包(closures)

[PHP] PHP閉包(closures)

1.閉包函式也叫匿名函式,一個沒有指定名稱的函式,一般會用在回撥部分
2.閉包作為回撥的基本使用,
echo preg_replace_callback('~-([a-z])~', function ($match) {
    return strtoupper($match[1]);
}, 'hello-world');

第三個引數是要匹配的目標字串,第二個引數是一個匿名函式,當preg_replace_callback執行的時候,會回撥匿名函式,並且把匹配到的結果,作為匿名函式的引數傳遞進去

3.閉包函式變數賦值的使用
$greet = function($name)
{
    printf
("Hello %s\r\n", $name); }; $greet('World'); 閉包函式賦值給了一個變數,這個變數直接跟()小括號就是執行這個函式,小括號裡面的引數會傳遞到閉包函式裡面去 4.閉包函式從父作用域繼承變數的使用 $message = 'hello'; $example = function () use ($message) { var_dump($message); }; $example(); 使用use關鍵字把函式外面的父作用域的變數傳遞到了函式裡面 5.閉包函式變數賦值+()執行函式傳遞引數+use()關鍵字傳遞父作用域變數 $message="taoshihan";
$example = function ($arg) use ($message) { var_dump($arg . ' ' . $message); }; $example("hello"); //輸出string(15) "hello taoshihan"