【PHP】無名関数(クロージャー)の外にある変数を、無名関数内で利用する方法

今回はPHPで、無名関数(クロージャー)の外で宣言した変数を、無名関数内で利用する方法となります。

【PHP】無名関数の外で宣言した変数を、無名関数内で利用する方法

無名関数では、親のスコープで定義した変数を利用する場合、以下のようにuseを利用し変数を渡す必要があります。

<?php
$num1 = "5";
$num2 = "10";
// 親のスコープで定義した変数をuseで指定
$example = function () use ($num1, $num2){
	return $num1 + $num2;
};

echo $example();
?>

アロー関数の場合

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

そのアロー関数では、親のスコープで定義した変数を利用する場合、無名関数のように明示的に変数を渡す必要はありません。

以下は、上記の無名関数を、アロー関数で記述した例となります。

<?php
$num1 = "5";
$num2 = "10";

$example = fn() => $num1 + $num2;

echo $example();
?>

参考サイトなど

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

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

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