導入
「この関数は数値を受け取って数値を返す」とはっきり書いておくと、間違った使い方を早く見つけられ、コードの意図も伝わりやすくなります。これが型宣言です。
説明
引数の前に型(int 整数・float 小数・string 文字列・bool 真偽値・array 配列)を書き、戻り値の型は ) のあとに : 型 で書きます。
<?php
function addTax(int $price): float {
return $price * 1.1;
}
echo addTax(1000), "\n"; // 1100
function join_names(array $names): string {
return implode("・", $names);
}
echo join_names(["佐藤", "鈴木"]), "\n"; // 佐藤・鈴木
int $price は「引数 $price は整数」、: float は「戻り値は小数」の意味です。型が合わない値を渡すと PHP が警告・エラーで教えてくれるので、バグを早く見つけられます。
戻り値がないときは : void と書けます。値を返さず処理だけする関数だと明示できます。
<?php
function shout(string $word): void {
echo strtoupper($word) . "!!!\n"; // strtoupper: 大文字にする
}
shout("hello"); // HELLO!!!
型宣言は必須ではありませんが、書いておくと安全で読みやすいコードになります。実務ではほぼ必ず書きます。
やってみよう
addTax に文字列(例:addTax("abc"))を渡すと何が起きるか試してみましょう。型宣言が「間違った使い方」を教えてくれることが体感できます。
演習
2つの整数を受け取り、その大きい方を返す関数 bigger(int $a, int $b): int を作ってください。max() を使ってかまいません。bigger(7, 3) を呼んで表示しましょう。
ヒント1を見る
function bigger(int $a, int $b): int { return max($a, $b); }
ヒント2を見る
echo bigger(7, 3), "\n";。答えは 7 です。