Rumah >pembangunan bahagian belakang >tutorial php >Perbezaan sebenar antara lambda dan fungsi biasa (menggunakan 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>
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.
<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!