戻り値の型宣言
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文を記述できません。パラメーターの型と戻り値の型を組み合わせることで、関数自体が自己文書化されます。コードを読む人は誰でも、何が入力され、何が出力されるのかをすぐに理解できます。
チャレンジ
簡単2 行の input を読み取ります:
- 小数としての price(例:
49.99) - 整数としての 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);
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: PHPオンラインコンパイラ