Code Fix

中級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

空欄を埋めて実行を通す

広告
広告スロット(未設定)

declare(strict_types=1) で型の異なる引数を渡すと TypeError になる

strict_typesが無い場合は自動的に型変換されて実行が続きます。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)