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

PHPの関数はすべてグローバルスコープとなり、ユーザー定義関数の関数名は一意にする必要があります。もし、重複した関数名を定義すると、その関数を呼び出した際にエラーとなります。

そのようなエラーを回避する場合、関数名を指定せずに作成できる無名関数・アロー関数を利用する方法があります。

今回は、その無名関数・アロー関数の例となります。

無名関数の例

無名関数は変数にセットして利用でき、以下はその例となります。

変数にセットした無名関数を呼び出すには、変数名の後に()を付けます。

<?php
// 無名関数を変数にセット
$example = function ($num) {
	return 10 + $num;
};
// 無名関数を呼び出し
echo $example(5);
?>

アロー関数の例

アロー関数は無名関数を簡潔に書ける文法となり、PHP 7.4 で追加されました。

そのアロー関数の場合、上記例の無名関数は次のように記述できます。

<?php
// アロー関数を変数にセット
$example = fn($num) => 10 + $num;
// アロー関数を呼び出し
echo $example(5);
?>

無名関数とアロー関数の違い

無名関数とアロー関数は同じ機能をサポートしていますが、無名関数では、親のスコープで定義した変数を利用する場合に、明示的に指定して変数を渡す必要があります。

詳しくは以下のリンク先を参考にしてみてください。

参考サイトなど

コメント投稿コメント投稿欄を開く

コメントは、項目欄(*は必須項目)を入力し、「コメントを送信」ボタンをクリックしてください。 (メールアドレスは公開されることはありません。コメントの公開は承認制となります。)

Twitterで返信する場合はこちらから。