中級 › 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
空欄を埋めて実行を通す
strict_typesが有効な状態でfloat型の引数に文字列を渡すとTypeErrorです。数値リテラルとして渡す必要があります。
次の問題