参数超出预期: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