本文へスキップ
BecomeCoder

PHPコース · 第4章 関数 · レッスン15

型宣言 ― 引数と戻り値の型を書く

ブラウザで完結

導入

「この関数は数値を受け取って数値を返す」とはっきり書いておくと、間違った使い方を早く見つけられ、コードの意図も伝わりやすくなります。これが型宣言です。

説明

引数の前に型(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 です。

実際に動かしてみよう

下のエディタにPHPを書いて「実行」を押すと、ブラウザ内で動く本物のPHP(php-wasm)で出力が表示されます。コードは必ず <?php で書き始めます。本文の例をそのまま試したり、書き換えたりしてみましょう(初回だけPHPの読み込みに少し時間がかかります)。

PHP — ブラウザ内で実行

ブラウザ内で動く本物のPHP(php-wasm / PHP 8.4)を読み込みます(初回のみ読み込みに少し時間がかかります)。
スクロールして表示された時点でも自動で読み込まれます。