機能プログラミングは、プログラムロジックを構築するための純粋な関数の使用を強調するプログラミングパラダイムです。従来のオブジェクト指向プログラミングでは、通常、クラスとオブジェクトに依存してコードを整理しますが、機能プログラミングは定義とコールオブ機能に焦点を当てています。 PHP 7.4で導入された矢印関数は、匿名関数を書き込むためのより簡潔な方法を提供し、機能プログラミングの動作を大幅に簡素化します。この記事では、矢印関数の基本的な使用について説明し、例を通じて機能的プログラミングにおけるそのアプリケーションを実証します。
矢印関数は最初にJavaScript ES6によって導入され、この機能はPHP 7.4の後に導入され、匿名関数の定義を簡素化しました。矢印関数は、外部スコープ変数を自動的にキャプチャし、機能と返品キーワードを省略できます。基本的な構文は次のとおりです。
(パラメーター)=>モード;
次に、正方形を計算するための矢印関数を定義する簡単な例です。
$ square = fn($ num)=> $ num ** 2; echo $ square(4); //出力16
この例では、矢印関数fn($ num)=> $ num ** 2がパラメーター$ numを受信し、その四角を返します。 $ square(4)を呼び出すことにより、結果16を取得できます。
矢印関数のパラメーターは1つ以上である可能性があり、複数のパラメーターはコンマによって分離され、複数のパラメーターの場合、たとえば(パラメーター1、パラメーター2)=>式など、ブラケットに囲む必要があります。
機能プログラミングは、一流の市民として機能することはパラメーターまたは返品値として使用できることを強調しています。矢印関数は、機能の定義と転送を簡素化し、機能的なプログラミングをより簡潔で効率的にします。
矢印関数を使用して高次関数マップを実装する例を以下に示します。配列の各要素で動作します。
$ numbers = [1、2、3、4、5]; $ double = fn($ num)=> $ num * 2; 関数マップ(array $ array、callable $ transform):array { return array_map($ transform、$ array); } $ result = map($ numbers、$ double); print_r($ result); //出力[2、4、6、8、10]
この例では、矢印関数$ doubleは各着信パラメーターに2を掛けます。高次関数マップは配列と関数を受信し、 array_mapを介して配列の各要素に関数を適用します。最終出力アレイでは、各要素に2を掛けます。
この例は、機能プログラミングにおける矢印関数のシンプルさと柔軟性を示しており、機能を迅速に定義および転送できるようにします。
矢印関数は、PHP 7.4の後に追加された構文機能であり、匿名関数をより簡潔な方法で定義し、外部範囲で変数を自動的に結合できるようにします。矢印関数を通じて、機能的なプログラミングスタイルをより簡単に実装できます。この記事では、矢印関数の構文と使用法を紹介し、そのアプリケーションを、例を介して配列操作と高次関数に示します。
PHP公式文書:「矢印関数」https://www.php.net/manual/en/functions.arrow.php