コールバック関数の外で計算された変数の使用
PHP では、コールバック関数の外で変数を計算し、それらの関数内で使用することができます。次のシナリオを考えてみましょう。
配列 $arr があり、array_filter を使用して $arr 内の要素の平均より小さい値のみを含む新しい配列を作成したいと考えています。
目的これにコールバック関数を使用すると、関数の外で平均を計算し、それを関数内で使用するという課題が発生する可能性があります。ただし、use キーワードは解決策を提供します。
use キーワードの使用
use キーワードを使用すると、匿名関数が親スコープから変数を継承できるようになります。この場合、コールバック関数を次のように定義できます。
$avg = array_sum($arr) / count($arr); $callback = function($val) use ($avg) { return $val < $avg; };
ここで、$avg は use キーワードを使用して親スコープから継承されます。コールバック関数は、$avg を使用して要素をフィルタリングできるようになりました。
return array_filter($arr, $callback);
アロー関数の使用 (PHP 7.4 以降)
PHP 7.4 では、アロー関数が導入されました。匿名関数のより簡潔な代替手段。アロー関数は外部変数を自動的に取得するため、使用する必要がありません。
コールバック関数は次のように定義できます。
$callback = fn($val) => $val < $avg;
アロー関数を使用した簡素化された配列フィルタリング
アロー関数は非常に簡潔であるため、array_filter 内に直接埋め込むことができます。 call:
return array_filter($arr, fn($val) => $val < $avg);
要約すると、use キーワード関数またはアロー関数を使用すると、コールバック関数の外で変数を計算し、コールバック関数内で使用できるため、より柔軟で便利なフィルタリング操作が可能になります。
以上がPHP のコールバック関数の外部で計算された変数を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。