【PHP】関数の重複エラーを無名関数・アロー関数で回避

PHPの関数はすべてグローバルスコープとなり、ユーザー定義関数の関数名は一意にする必要があります。もし、重複した関数名を定義すると、その関数を呼び出した際にエラーとなります。
そのようなエラーを回避する場合、関数名を指定せずに作成できる無名関数・アロー関数を利用する方法があります。
今回は、その無名関数・アロー関数の例となります。
無名関数の例
無名関数は変数にセットして、次のように利用できます。
変数にセットした無名関数を呼び出すには、変数名の後に()を付けます。
<?php
// 無名関数を変数にセット
$example = function ($num) {
return 10 + $num;
};
// 無名関数を呼び出し
echo $example(5);
?>
アロー関数の例
アロー関数は無名関数を簡潔に書ける文法となり、PHP 7.4 で追加されました。
そのアロー関数の場合、上記例の無名関数は次のように記述できます。
<?php
// アロー関数を変数にセット
$example = fn($num) => 10 + $num;
// アロー関数を呼び出し
echo $example(5);
?>
無名関数とアロー関数の違い
無名関数とアロー関数は同じ機能をサポートしていますが、無名関数では、親のスコープで定義した変数を利用する場合に、明示的に指定して変数を渡す必要があります。
詳しくは以下のリンク先を参考にしてみてください。