第6章 ユーザー定義関数 / 第4回 模擬試験

PHPの関数の型宣言(type hint)に関する次の記述のうち、正しいものはどれか。

戻り値の型は`function foo(): int { ... }`のように、引数リストの後にコロンを付けて宣言する。 正解
型宣言をすると、実引数の型チェックが完全に無効化される。
型宣言には`union型`(複数の型の組み合わせ)を指定することはできない。
PHPでは引数や戻り値に型宣言を一切行うことができない。
解説
戻り値の型宣言は、`function foo(引数リスト): 型 { ... }`のように、引数リストを閉じる`)`の後にコロン`:`を付けて記述します。 例: ``` function add(int $a, int $b): int { return $a + $b; } ``` 他の選択肢が誤りである理由は次の通りです。 ・型宣言をすると、渡された実引数の型が宣言と一致するかがチェックされます。「型チェックが完全に無効化される」はむしろ逆で、型宣言は型の安全性を高める機能です。 ・PHP 8.0以降、`int|string`のように複数の型を`|`でつないだ「union型(合併型)」を型宣言に指定できます。 ・PHPは引数・戻り値の両方に型宣言を行うことができます(型宣言自体は任意で省略も可能ですが、「一切行えない」は誤りです)。 例: ``` function parseId(int|string $id): int|string { return $id; } ``` (参照: 独習PHP 第4版 第6章 ユーザー定義関数 6.1.5〜6.1.6節 引数/戻り値の型宣言 p.264〜267)