ホームページ > バックエンド開発 > PHPチュートリアル > PHP のコールバック関数の外部で計算された変数を使用するにはどうすればよいですか?

PHP のコールバック関数の外部で計算された変数を使用するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-27 14:12:10
オリジナル
982 人が閲覧しました

How Can I Use Variables Calculated Outside Callback Functions in PHP?

コールバック関数の外で計算された変数の使用

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート