Menu
Coddy logo textTech

可変関数

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

variable functions は、PHP で functions を動的に呼び出すもう 1 つの方法です。call_user_func() を使用する代わりに、function name を含む variable を function そのもののように扱うことで、function を直接呼び出せます。

syntax は簡単です: function name を含む variable がある場合、variable に括弧を追加してその function を呼び出せます:

<?php
function sayHello() {
    echo "Hello World!";
}

$functionName = "sayHello";
$functionName();  // 出力: Hello World!
?>

これはパラメータを受け取る functions にも使えます。単に括弧内に引数を渡します:

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

$func = "greet";
$func("Alice");  // 出力: Hello, Alice!
?>

variable functionsは、コードを動的に実行するための、明快で直感的な方法を提供します。この機能は、条件やユーザー入力に基づいて異なるfunctionsをCallする必要がある場合に特に便利で、コードをより柔軟かつ適応性の高いものにします。

challenge icon

チャレンジ

簡単

3つのfunctionsを作成します。2つの数値(lengthとwidth)を受け取り、それらの積を返すcalculateArea、2つの数値を受け取り、それらの合計の2倍を返すcalculatePerimeter、そして2つの数値を受け取り、それらの平方の合計の平方根を返すcalculateDiagonalです。

threeつの入力を受け取ります。operation名("area""perimeter"、または"diagonal")、length、widthです。threeつの入力をすべて読み取り、function名をvariableに格納し、2つの測定値を使ってvariable function syntaxでそのfunctionを呼び出し、resultを出力してください。

入力形式: 3行です。1行目にはoperation名、2行目にはlength(小数を含む場合がある数値)、3行目にはwidth(小数を含む場合がある数値)が含まれます。

期待される出力: 計算のresult

自分で試してみよう

<?php
// 入力を読み取る
$operation = trim(fgets(STDIN));
$length = floatval(fgets(STDIN));
$width = floatval(fgets(STDIN));

// TODO: ここに3つの関数を作成する (calculateArea, calculatePerimeter, calculateDiagonal)

// TODO: 可変関数構文を使って適切な関数を呼び出し、結果を格納する

// 結果を出力する
echo $result;
?>
quiz icon腕試し

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

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

自分で練習してみよう: PHPオンラインコンパイラ