早期的 PHP 版本允许函数调用时,传递的参数少于函数定义本身要求的参数个数。当你调用函数时就会抛出一个参数丢失的警告。
// PHP 5.6
function sum($a, $b)
{
return $a + $b;
}
sum();
// Warning: Missing argument 1 for sum()
// Warning: Missing argument 2 for sum()
sum(3);
// Warning: Missing argument 2 for sum()
在这种情况下警告没什么用,开发者必须自行检查参数是否正确。在 PHP 7.1 中,这些警告变成了一个 ArgumentCountError 的异常:
// PHP 7.1
function sum($a, $b)
{
return $a + $b;
}
sum();
// Fatal error: Uncaught ArgumentCountError: Too few arguments to function sum(), 0 passed in /vagrant/index.php on line 18 and exactly 2 expected in /vagrant/index.php:13
sum(3); // skipped
sum(3, 4); // skipped