Menu
CoddyTech

戻り値の型宣言

CoddyのPHPジャーニー「基礎」セクションの一部。レッスン 66/71。

パラメータの type を宣言できるのと同様に、function がどの type を返すべきかを指定することもできます。Return type の宣言は、function が返す値の種類を PHP に正確に伝えます。これにより、function が誤って間違った type を返した場合に、エラーを見つけやすくなります。

戻り値の型を追加するには、引数リストの閉じ括弧の後に、コロンに続けて型を記述します。

<?php
function add(int $a, int $b): int {
    return $a + $b;
}

echo add(5, 3);
?>

これは 8 を出力します。かっこの後にある : int は、この function が整数を return しなければならないことを宣言しています。代わりに string を return しようとすると、PHP はエラーを発生させます。

パラメーターの宣言と同じ型を使用できます:int、float、string、bool、array。何も返さない関数には、voidという特別な型もあります:

<?php
function sayHello(string $name): void {
    echo "Hello, $name!\n";
}

sayHello("Alice");
?>

void関数には、値を伴うreturn文を記述できません。パラメーターの型と戻り値の型を組み合わせることで、関数自体が自己文書化されます。コードを読む人は誰でも、何が入力され、何が出力されるのかをすぐに理解できます。

challenge icon

チャレンジ

簡単

2 行の input を読み取ります:

  1. 小数としての price(例:49.99)
  2. 整数としての discount の割合(例:20)

2 つの Parameter を type declaration 付きで受け取る、calculateFinalPrice という名前の function を Create します:

  • $price は float
  • $discountPercent は int

function には float の Return type declaration が必要で、discount を applying した後の final price を return する必要があります。

input の値を使って function を Call し、返された result を print します。

例 1:

input が 100.00 と 25 の場合、出力は次のようになります:

75

例 2:

input が 49.99 と 10 の場合、出力は次のようになります:

44.991

例 3:

input が 200.50 と 50 の場合、出力は次のようになります:

100.25

自分で試してみよう

<?php
// 入力を読み取る
$price = floatval(fgets(STDIN));
$discountPercent = intval(fgets(STDIN));

// TODO: calculateFinalPrice という関数を作成する:
// - パラメータ $price に float 型宣言
// - パラメータ $discountPercent に int 型宣言
// - 戻り値の型宣言は float
// 関数は割引を適用した後の最終価格を返すこと


// 関数を呼び出して結果を出力する
echo calculateFinalPrice($price, $discountPercent);
?>
quiz icon腕試し

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

基礎のすべてのレッスン

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