更新履歴
更新日 | 更新者 | 更新内容 |
---|---|---|
2021/8/18 | JJI | ・サンプルプログラムの実行結果に画面の画像を追加 |
アロー関数
アロー関数は無名関数を簡潔に書けるようにPHP7.4から導入されました。
構文は次の通りです。
fn (argument_list) => expr
アロー関数は無名関数と同様な機能が使用できます。
ただし、次の点で無名関数とは異なっています。
- 呼び出し元の変数が自由に使用できる
無名関数で使用したuseキーワードはなくてもよい - アロー関数は複数行書くことができない
今後のバージョンで対応する予定がある
サンプルプログラム
値渡しの無名関数と同じ動きになるサンプルプログラムです。
アロー関数の場合、関数の外から参照渡しで変数を渡すことはできません。
<?php
// 引数の値への厳密な型付け
declare(strict_types = 1);
echo "【PHP】関数<br>\n";
echo "【引数】アロー関数<br>\n";
// 加算する値
$add_num = 5;
// 無名関数
$call_noname_func = function(int $num) use($add_num) :int {
return $num + $add_num;
};
// アロー関数
$call_arrow_func = fn(int $num) :int => $num + $add_num;
// 無名関数の呼び出し
echo "無名関数:" . $call_noname_func(11) . ":<br>\n";
// アロー関数の呼び出し
echo "アロー関数:" . $call_arrow_func(12) . ":<br>\n";
// 関数外の変数も変更しても変わらない
$add_num = 7;
echo "アロー関数:" . $call_arrow_func(12) . ":<br>\n";
?>
実行結果は次の通りです。
・画面

・HTML
【PHP】関数<br>
【引数】アロー関数<br>
無名関数:16:<br>
アロー関数:17:<br>
アロー関数:17:<br>
コメント