ホームページ >データベース >mysql チュートリアル >Laravel の「where」句を使用する場合、PHP クロージャで外部変数にアクセスするにはどうすればよいですか?

Laravel の「where」句を使用する場合、PHP クロージャで外部変数にアクセスするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-20 06:25:10994ブラウズ

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

外部変数を使用した PHP クロージャの利用

Laravel の高度な where 句を使用する場合、外部変数をクロージャ関数に渡す必要があります。デフォルトの構文には、新しいプロパティの作成と、$this を介したそのプロパティへのアクセスが含まれます。ただし、use キーワードを使用すると、より便利な解決策が提供されます。

use を使用すると、クロージャのスコープ内で必要な変数を宣言できます。例:

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

このアプローチにより、クロージャ内で $activated 変数を直接参照できます。

PHP 7.4 による拡張構文

PHP 7.4 では、アロー関数は匿名関数の簡潔な代替手段を提供します。アロー関数を使用した例を次に示します。

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

ただし、アロー関数は通常の関数とは少し異なることに注意してください。

  • これらは、親スコープから変数を自動的にキャプチャします。
  • これらは常に値を返すため、return キーワードは必要ありません。
  • これらは、何も含まない単一の式である必要があります。中括弧。

以上がLaravel の「where」句を使用する場合、PHP クロージャで外部変数にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。