中級 › declare(strict_types=1) で型の異なる引数を渡すと TypeError になる › パターン1
declare(strict_types=1) で型の異なる引数を渡すと TypeError になる
ファイルの先頭でdeclare(strict_types=1)を宣言すると、関数の型宣言と異なる型の値を渡した際に自動変換されず、TypeErrorになります。
1 <?php 2 declare(strict_types=1); 3 function add(int $a, int $b): int { 4 return $a + $b; 5 } 6 echo add(1, _____); ^
Fatal error: Uncaught TypeError: add(): Argument #2 ($b) must be of type int, string given, called in main.php on line 6 and defined in main.php:3
空欄を埋めて実行を通す
strict_types=1を宣言したファイルでは、int型の引数に文字列を渡しても自動変換されずTypeErrorになります。数値そのものを渡す必要があります。
次の問題