1--TEST-- 2Call userland function with incorrect number of arguments with strict types 3--FILE-- 4<?php 5declare(strict_types=1); 6try { 7 function foo($bar) { } 8 foo(); 9} catch (\Error $e) { 10 echo get_class($e) . PHP_EOL; 11 echo $e->getMessage() . PHP_EOL; 12} 13 14try { 15 function bar($foo, $bar) { } 16 bar(1); 17} catch (\Error $e) { 18 echo get_class($e) . PHP_EOL; 19 echo $e->getMessage() . PHP_EOL; 20} 21 22function bat(int $foo, string $bar) { } 23 24try { 25 bat(123); 26} catch (\Error $e) { 27 echo get_class($e) . PHP_EOL; 28 echo $e->getMessage() . PHP_EOL; 29} 30 31try { 32 bat("123"); 33} catch (\Error $e) { 34 echo get_class($e) . PHP_EOL; 35 echo $e->getMessage() . PHP_EOL; 36} 37 38try { 39 bat(123, 456); 40} catch (\Error $e) { 41 echo get_class($e) . PHP_EOL; 42 echo $e->getMessage() . PHP_EOL; 43} 44--EXPECTF-- 45ArgumentCountError 46Too few arguments to function foo(), 0 passed in %s and exactly 1 expected 47ArgumentCountError 48Too few arguments to function bar(), 1 passed in %s and exactly 2 expected 49ArgumentCountError 50Too few arguments to function bat(), 1 passed in %s and exactly 2 expected 51TypeError 52Argument 1 passed to bat() must be of the type int, string given, called in %s 53TypeError 54Argument 2 passed to bat() must be of the type string, int given, called in %s 55