第6章 ユーザー定義関数 / 第5回 模擬試験

PHPのアロー関数(`fn`)に関する次の記述のうち、正しいものはどれか。

アロー関数は`fn(引数) => 式`という構文で、単一の式の評価結果を自動的に返す。 正解
アロー関数は複数行の処理ブロックを自由に記述できる。
アロー関数は親スコープの変数を利用するために`use`キーワードが必須である。
アロー関数はPHP5から存在する古い機能である。
解説
アロー関数は`fn(引数) => 式`という構文で定義し、`=>`の右側に書いた「単一の式」を評価した結果が、`return`を書かなくても自動的に戻り値になります。 例: ``` $double = fn($x) => $x * 2; echo $double(5); // 10 ``` 他の選択肢が誤りである理由は次の通りです。 ・アロー関数の本体には、単一の式のみを記述できます。複数の文からなる処理ブロックを自由に書くことはできません(複数文が必要な場合は通常の無名関数`function () {...}`を使います)。 ・アロー関数は、親スコープの変数を`use`キーワードなしで「自動的に」キャプチャして利用できます。「`use`キーワードが必須」というのは誤りです(`use`が必要なのは通常の無名関数の方です)。 ・アロー関数はPHP 7.4で導入された比較的新しい機能です。「PHP5から存在する」というのは誤りです。 (参照: 独習PHP 第4版 第6章 ユーザー定義関数 6.4.6節 アロー関数 p.298)