编程语言
首页 > 编程语言> > 参数超出预期:PHP中没有错误?

参数超出预期:PHP中没有错误?

作者:互联网

请参阅下面的代码,其中我向自定义函数传递了比预期更多的参数:

error_reporting(E_ALL);
ini_set("display_errors", 1);

daidai("asassa", "asgfasfas", "asassa");

function daidai($aa)
{
    echo $aa;
}

这根本不会发出错误,而我正在等待警告:函数daidai()期望最多1个参数,给定3个

让我感到困惑的是,这会发出预期的错误:

$Odate=new DateTime();
$sfasfasf=$Odate->setTime("23", "59", "30", "unexpected");

为什么?

解决方法:

这是因为setTime()方法本身会对参数数量进行检查,如果要在函数中使用它,则必须自己实现.

作为参考,您可以考虑将func_num_args()func_get_arg()func_get_args()设置为the docs

从文档:

No special syntax is required to note that a function is variadic;
however access to the function’s arguments must use func_num_args(),
func_get_arg() and func_get_args().

因此,php实际上将每个函数都视为可变函数.

标签:php,runtime-error
来源: https://codeday.me/bug/20191012/1900896.html