スコープ外の変数を利用するコールバック関数
PHP では、多くの場合、イミディエイトの外部で定義されたデータを操作するコールバック関数を利用することが望ましいです。範囲。これを実現するには、use キーワードを使用してこれらの変数を明示的にインポートできます。
この例では、配列 $arr が初期化され、その平均 ($avg) が計算されます。ただし、匿名コールバック関数 $callback 内では、$avg が定義されていないため問題が発生します。
これを解決するには、use キーワードを活用できます。
$callback = function($val) use ($avg) { return $val < $avg; };
use を追加することで、 ($avg)、親スコープの $avg 変数がコールバック関数にインポートされ、計算で使用できるようになります。
別のアプローチも利用可能PHP 7.4 以降では、アロー関数が使用されます。
$callback = fn($val) => $val < $avg;
アロー関数は外部変数を自動的にキャプチャし、プロセスを合理化します。あるいは、さらに単純化して、array_filter 呼び出し内にコールバック定義を直接含めることもできます。
return array_filter($arr, fn($val) => $val < $avg);
これは、コールバック関数の外部で計算される変数を使用する必要性に対処する PHP の多用途性を示しています。
以上がPHP でコールバック関数のスコープ外の変数にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。