[PHP] PHP閉包(closures)
阿新 • • 發佈:2018-11-27
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"