可変関数
CoddyのPHPジャーニー「論理とフロー」セクションの一部 — レッスン 6/68。
可変関数は、PHPで関数を動的に呼び出すもう一つの方法を提供します。call_user_func() を使用する代わりに、関数名を含む変数を関数そのものであるかのように扱うことで、関数を直接呼び出すことができます。
構文はシンプルです:関数名を含む変数がある場合、その変数に括弧を追加することで、その関数を呼び出すことができます:
<?php
function sayHello() {
echo "Hello World!";
}
$functionName = "sayHello";
$functionName(); // 出力: Hello World!
?>これは、引数を受け取る関数でも同様に機能します。単に括弧の中に引数を渡すだけです:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
$func = "greet";
$func("Alice"); // 出力: Hello, Alice!
?>可変関数は、コードを動的に実行するためのクリーンで直感的な方法を提供します。この機能は、条件やユーザー入力に基づいて異なる関数を呼び出す必要がある場合に特に便利で、コードをより柔軟で適応性の高いものにします。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
チャレンジ
簡単3つの関数を作成してください。calculateAreaは2つの数値(長さと幅)を受け取り、その積を返します。calculatePerimeterは2つの数値を受け取り、その和の2倍を返します。そして、calculateDiagonalは2つの数値を受け取り、それらの2乗の和の平方根を返します。
3つの入力を受け取ります:操作名("area"、"perimeter"、または"diagonal")、長さ、および幅です。これら3つの入力を読み込み、関数名を変数に格納し、可変関数の構文を使用してその関数を2つの測定値とともに呼び出し、結果を出力してください。
入力形式: 3行 - 1行目には操作名、2行目には長さ(小数を含む可能性のある数値)、3行目には幅(小数を含む可能性のある数値)が含まれます。
期待される出力: 計算結果
チートシート
可変関数を使用すると、関数名を含む変数を関数そのものとして扱うことで、関数を動的に呼び出すことができます。
基本的な構文 - 関数名を含む変数に括弧を追加します:
<?php
function sayHello() {
echo "Hello World!";
}
$functionName = "sayHello";
$functionName(); // 出力: Hello World!
?>可変関数は引数でも機能します:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
$func = "greet";
$func("Alice"); // 出力: Hello, Alice!
?>自分で試してみよう
<?php
// 入力を読み込む
$operation = trim(fgets(STDIN));
$length = floatval(fgets(STDIN));
$width = floatval(fgets(STDIN));
// TODO: ここに3つの関数を作成する (calculateArea, calculatePerimeter, calculateDiagonal)
// TODO: 可変関数構文を使用して適切な関数を呼び出し、結果を保存する
// 結果を出力する
echo $result;
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。