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
Lepaskan: 2025-01-30 00:22:09
asal
333 orang telah melayarinya

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>
Salin selepas log masuk
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>
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan