Heim >Backend-Entwicklung >PHP-Tutorial >Der tatsächliche Unterschied zwischen Lambda und regulären Funktionen (unter Verwendung von PHP)
Das Problem des Kontextes der Funktion
Wenn wir die Funktion als Parameter übergeben, müssen wir
Schlüsselwörter verwenden, wenn wir eine Variable außerhalb der Funktion verwenden müssen.
use
Dies ist auf der Gruppenroute von Laravel oder Lumen üblich.
Bitte beachten Sie, dass die Verwendung von Schlüsselwörtern erforderlich ist:
use
Der obige Code stammt aus dem Dokument von Lumen. Wenn die Lambda -Funktion (Pfeilfunktion) verwendet wird, um diesen Code neu zu schreiben, können alle anderen Variablen außerhalb der Funktion innerhalb der Funktion verwendet werden.
<code class="language-php">$router->group(['prefix' => 'admin'], function() use ($router) { $router->get('users', function() { // 匹配 "/admin/users" URL }); });</code>
Bitte beachten Sie, dass hier nicht Schlüsselwort
verwenden müssen, der Code ist prägnanter.
use
Dies ist eines der wichtigsten Merkmale der Lambda -Funktion.
<code class="language-php">$router->group(['prefix' => 'admin'], fn() => ( $router->get('users', fn() => ( // 匹配 "/admin/users" URL )); ));</code>
In anderen Sprachen gibt es kein Schlüsselwort
, und die Funktion kennt den Kontext nicht um ihn herum. Wie kann man in diesem Fall ein ähnliches Verhalten erreichen?
Sie müssen die Variablen jedes Mal als Parameter übergeben, aber das ist wirklich nicht das, was wir wollen. use
Das obige ist der detaillierte Inhalt vonDer tatsächliche Unterschied zwischen Lambda und regulären Funktionen (unter Verwendung von PHP). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!