Heim >Datenbank >MySQL-Tutorial >Wie kann ich auf externe Variablen in PHP-Abschlüssen zugreifen, wenn ich die „where'-Klauseln von Laravel verwende?

Wie kann ich auf externe Variablen in PHP-Abschlüssen zugreifen, wenn ich die „where'-Klauseln von Laravel verwende?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-20 06:25:10994Durchsuche

How Can I Access External Variables in PHP Closures When Using Laravel's `where` Clauses?

PHP-Abschluss mit externen Variablen verwenden

Bei Verwendung der erweiterten Where-Klauseln von Laravel ist es notwendig, externe Variablen an Abschlussfunktionen zu übergeben. Die Standardsyntax umfasst das Erstellen einer neuen Eigenschaft und den Zugriff darauf über $this. Das Schlüsselwort „use“ bietet jedoch eine bequemere Lösung.

Durch die Verwendung von „use“ können Sie die benötigten Variablen im Gültigkeitsbereich des Abschlusses deklarieren. Zum Beispiel:

DB::table('users')->where(function ($query) use ($activated) {
    $query->where('activated', '=', $activated);
})->get();

Mit diesem Ansatz können Sie direkt auf die $activated-Variable innerhalb des Abschlusses verweisen.

Erweiterte Syntax mit PHP 7.4

In PHP 7.4 bieten Pfeilfunktionen eine übersichtliche Alternative zu anonymen Funktionen. Hier ist ein Beispiel für die Verwendung von Pfeilfunktionen:

DB::table('users')->where(fn($query) => $query->where('activated', '=', $activated))->get();

Beachten Sie jedoch, dass sich Pfeilfunktionen geringfügig von regulären Funktionen unterscheiden:

  • Sie erfassen automatisch Variablen aus dem übergeordneten Bereich.
  • Sie geben immer einen Wert zurück, wodurch das Schlüsselwort „return“ überflüssig wird.
  • Sie müssen ein einzelner Ausdruck ohne Curly sein Zahnspangen.

Das obige ist der detaillierte Inhalt vonWie kann ich auf externe Variablen in PHP-Abschlüssen zugreifen, wenn ich die „where'-Klauseln von Laravel verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn