Menu
Coddy logo textTech

アロー関数

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!
?>

アロー関数は、従来の無名関数の構文では冗長に感じられるような、短くシンプルな操作に最適です。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

challenge icon

チャレンジ

簡単

商品名を引き数として受け取り、フォーマットされた商品ラベルを返すアロー関数を作成してください。このアロー関数は、周囲のスコープからカテゴリ名をキャプチャする必要があります。

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;
?>
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

論理とフローのすべてのレッスン