アロー関数
CoddyのPHPジャーニー「論理とフロー」セクションの一部 — レッスン 3/68。
PHP 7.4で導入されたアロー関数は、単純な無名関数をより簡潔に記述する方法を提供します。これらは、完全な function 構文の代わりに fn キーワードを使用するため、コードをより短く、よりクリーンにすることができます。
アロー関数は次のように作成します:
<?php
$greeting = fn($name) => "Hello, " . $name . "!";
echo $greeting("Alice"); // 出力: Hello, Alice!
?>主な違いに注目してください。アロー関数は function の代わりに fn を使い、式を指すアロー => を持ち、単純な式の場合は波括弧や return 文を必要としません。
アロー関数の最大の利点は、親スコープから変数を自動的にキャプチャすることです。useキーワードは必要ありません。
<?php
$message = "Welcome";
$greeting = fn($name) => $message . ", " . $name . "!";
echo $greeting("Bob"); // 出力: Welcome, Bob!
?>アロー関数は、従来の無名関数の構文では冗長に感じられるような、短くシンプルな操作に最適です。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
チャレンジ
簡単商品名を引き数として受け取り、フォーマットされた商品ラベルを返すアロー関数を作成してください。このアロー関数は、周囲のスコープからカテゴリ名をキャプチャする必要があります。
2つの入力を受け取ります:カテゴリ名と商品名です。両方の入力を読み込み、カテゴリをキャプチャして商品ラベルを "[Category] Product" の形式でフォーマットするアロー関数を作成し、そのアロー関数を商品名で呼び出して、結果を出力してください。
入力形式: 2行 - 1行目にカテゴリ名、2行目に商品名が含まれます
期待される出力: "[Category] Product" の形式でフォーマットされた商品ラベル
チートシート
アロー関数は fn キーワードを使用し、シンプルな無名関数のための簡潔な構文を提供します:
$greeting = fn($name) => "Hello, " . $name . "!";主な特徴:
functionの代わりにfnを使用する- アロー
=>が式を指し示す - 単純な式では、波括弧や
return文は不要 useキーワードなしで、親スコープから変数を自動的にキャプチャする
$message = "Welcome";
$greeting = fn($name) => $message . ", " . $name . "!";
echo $greeting("Bob"); // 出力: Welcome, Bob!自分で試してみよう
<?php
// 入力を読み込む
$category = trim(fgets(STDIN));
$product = trim(fgets(STDIN));
// TODO: 以下にコードを記述してください
// カテゴリをキャプチャし、製品ラベルをフォーマットするアロー関数を作成します
// アロー関数を呼び出し、結果を出力します
echo $result;
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。