Rumah >pembangunan bahagian belakang >tutorial php >Perbezaan sebenar antara lambda dan fungsi biasa (menggunakan php)

Perbezaan sebenar antara lambda dan fungsi biasa (menggunakan php)

Susan Sarandon
Susan Sarandonasal
2025-01-30 00:22:09335semak imbas

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

Masalah konteks fungsi

Apabila kita lulus fungsi sebagai parameter, jika kita perlu menggunakan pembolehubah di luar fungsi, kita mesti menggunakan

kata kunci.

use Ini adalah perkara biasa dalam laluan kumpulan Laravel atau lumen.

Sila ambil perhatian bahawa penggunaan kata kunci diperlukan:

use Kod di atas diambil dari dokumen Lumen. Jika fungsi lambda (fungsi anak panah) digunakan untuk menulis semula kod ini, semua pembolehubah lain di luar fungsi boleh digunakan di dalam fungsi.

<code class="language-php">$router->group(['prefix' => 'admin'], function() use ($router) {
    $router->get('users', function() {
        // 匹配 "/admin/users" URL
    });
});</code>
Menulis semula fungsi lambda

Sila ambil perhatian bahawa di sini anda tidak perlu menggunakan kata kunci

, kod itu lebih ringkas.

use Ini adalah salah satu ciri yang paling penting dalam fungsi Lambda.

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

Dalam bahasa lain, tidak ada kata kunci

, dan fungsi tidak tahu konteks di sekelilingnya. Dalam kes ini, bagaimana untuk mencapai tingkah laku yang sama?

Anda perlu lulus pembolehubah sebagai parameter setiap kali, tetapi ini sebenarnya bukan apa yang kita mahu. use

Atas ialah kandungan terperinci Perbezaan sebenar antara lambda dan fungsi biasa (menggunakan php). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn