首頁 > 後端開發 > php教程 > Lambda和常規功能之間的實際差異(使用PHP)

Lambda和常規功能之間的實際差異(使用PHP)

Susan Sarandon
發布: 2025-01-30 00:22:09
原創
263 人瀏覽過

The Actual Difference Between Lambda and Regular Functions (Using PHP)

函數上下文的問題

當我們將函數作為參數傳遞時,如果需要使用函數外部的變量,就必須使用 use 關鍵字。

這在 Laravel 或 Lumen 的分組路由中很常見。

請注意此處 use 關鍵字的使用是必要的:

<code class="language-php">$router->group(['prefix' => 'admin'], function() use ($router) {
    $router->get('users', function() {
        // 匹配 "/admin/users" URL
    });
});</code>
登入後複製

以上代碼摘自 Lumen 的文檔。如果使用 lambda 函數(箭頭函數)重寫這段代碼,則函數內部將可以使用函數外部的所有其他變量。

使用 Lambda 函數重寫

請注意,此處不需要使用 use 關鍵字,代碼也更加簡潔。

<code class="language-php">$router->group(['prefix' => 'admin'], fn() => (
    $router->get('users', fn() => (
        // 匹配 "/admin/users" URL
    ));
));</code>
登入後複製

這是 lambda 函數最重要的特性之一,它使得 lambda 函數能夠創建閉包(閉包不在本文討論範圍之內)以及許多其他函數式編程概念。

其他情況

在其他一些語言中,沒有 use 關鍵字,函數不知道其周圍的上下文。

在這種情況下,如何實現類似的行為呢?

你需要每次都將變量作為參數傳遞,但這確實不是我們想要的。

以上是Lambda和常規功能之間的實際差異(使用PHP)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板