匿名関数パラメータへの外部変数の組み込み
プログラミングでは、関数のスコープ外で定義された変数にアクセスすることが必要になることがよくあります。匿名関数をパラメータとして利用する場合、このタスクは困難になる可能性があります。
次のシナリオを考えてみましょう。関数 fetch() を使用してデータベース行を処理し、それらをパラメータとして匿名関数に渡します。各行には $r['title'] を使用してアクセスできますが、これらのタイトルを変数に連結する必要があります。
グローバル修飾子を使用できますが、これは洗練されたソリューションではありません。より適切なアプローチは、次のコードに示すように use キーワードを使用することです。
$result = ''; fetch("SELECT title FROM tbl", function($r) use (&$result) { $result .= $r['title']; });
use キーワードは、外部変数の結果を参照 (&$result) によって取得し、匿名関数内で使用できるようにします。 .
ただし、use() パラメータは早期バインディングを示すことに注意してください。これは、呼び出し (遅延バインディング) の時点ではなく、ラムダ関数の宣言の時点で変数の値を使用することを意味します。
以上がPHPの匿名関数パラメータ内の外部変数にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。