アロー関数アロー関数は 無名関数 を簡潔に書ける文法として PHP 7.4 で追加されました。 無名関数とアロー関数は共に Closure クラスを使って実装されています。
アロー関数は
アロー関数は 無名関数 と同じ機能をサポートしていますが、 親のスコープで使える変数が常に自動で使える点だけが異なります。 式の中で使える変数が親のスコープで定義されている場合、 暗黙のうちに参照ではなく値がキャプチャされます。 次の例では、$fn1 と $fn2 は同じ振る舞いをします。
例1 アロー関数は参照ではなく値を自動でキャプチャする
上の例の出力は以下となります。 4 この仕組みは、アロー関数をネストした場合でも同じ動きをします:
例2 アロー関数は、ネストされた場合でも変数を値でキャプチャする
無名関数と同じように、 アロー関数の文法は、引数や戻り値、デフォルト値、可変長引数、 リファレンス渡しやリファレンス返しを含む、任意の関数シグネチャを扱えます。 次に示す例は、全て正しいアロー関数の例です:
例3 アロー関数の例
アロー関数は変数を値でバインドします。
これは変数 $x をアロー関数の内部で使うたびに
例4 外部のスコープの値はアロー関数では変更できない
変更履歴
注意
|