Menu
Coddy logo textTech

無名関数

CoddyのPHPジャーニー「論理とフロー」セクションの一部 — レッスン 1/68。

匿名関数(クロージャとも呼ばれます)は、名前が指定されていない関数です。これらは、完全な名前付き関数を作成するのが過剰な、短い一度限りのタスクに最適です。

匿名関数を作成するには、関数名を指定せずにfunctionキーワードを使用し、それを変数に代入します:

<?php
$greeting = function($name) {
    echo "Hello, " . $name . "!";
};
?>

閉じ括弧の後のセミコロンに注目してください。これは、関数を変数に代入しているために必要となります。

無名関数を呼び出すには、変数名の後に括弧を付けます。

<?php
$greeting("Alice");  // 出力: Hello, Alice!
?>

匿名関数は、一度しか使用しない名前付き関数でコードを乱雑にすることなく、特定のタスクのために単純な関数が必要な場合に特に有用です。

quiz icon腕試し

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

quiz icon腕試し

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

quiz icon腕試し

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

challenge icon

チャレンジ

簡単

数値を引数として受け取り、その数値の2乗を返す無名関数を作成してください。この関数を $square という名前の変数に代入してください。

入力として数値を受け取ります。その数値を読み込み、作成した無名関数をその数値で呼び出し、結果を出力してください。

入力形式: 1つの数値(小数が含まれる場合があります)

期待される出力: 入力された数値の2乗

チートシート

無名関数(クロージャ)は、名前が指定されていない関数で、短時間の使い捨てのタスクに便利です。

名前を付けずに function キーワードを使用して無名関数を作成し、それを変数に代入します。

<?php
$greeting = function($name) {
    echo "Hello, " . $name . "!";
};
?>

関数を変数に代入する場合、閉じ括弧の後のセミコロンが必要であることに注意してください。

変数名の後に括弧を付けて無名関数を呼び出します。

<?php
$greeting("Alice");  // 出力: Hello, Alice!
?>

自分で試してみよう

<?php
// 入力を読み込む
$number = floatval(fgets(STDIN));

// TODO: 無名関数を作成し、$square変数に代入する


// 関数を呼び出して結果を表示する
echo $square($number);
?>
quiz icon腕試し

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

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