Code Fix

中級declare(strict_types=1) で型の異なる引数を渡すと TypeError になる › パターン2

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

ファイルの先頭でdeclare(strict_types=1)を宣言すると、関数の型宣言と異なる型の値を渡した際に自動変換されず、TypeErrorになります。

 1  <?php
 2  declare(strict_types=1);
 3  function double(float $n): float {
 4      return $n * 2;
 5  }
 6  echo double(______);
                   ^
Fatal error: Uncaught TypeError: double(): Argument #1 ($n) must be of type float, string given, called in main.php on line 6 and defined in main.php:3

空欄を埋めて実行を通す

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

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

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

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

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