我有一个只接受一个参数的函数,但我不小心给它传了两个参数。它默默地失败了。我没有意识到第二个参数被忽略了,所以它花了一段时间来调试。
对于这种情况,有没有打开错误检查的方法?
发布于 2014-04-14 09:38:14
我怀疑当传递的参数比函数签名中指定的更多时,不可能全局地导致错误,因为PHP支持通过func_get_args()等方式在用户定义函数中使用可变数量的参数。如果您使用比签名中指定的参数更少的参数调用函数,PHP将报告一个错误(在编写此答案时级别为E_WARNING ),但如果您使用比签名中指定的参数更多的参数调用函数,PHP将不会报告错误。
这并不完全是你特别要求的,但是如果你确实需要这个行为,你当然可以编写代码来强制执行一个参数。
function foo($only_param) {
if (func_num_args() > 1) {
trigger_error(__FUNCTION__ . "(): Too many params", E_USER_ERROR);
}
...
}发布于 2014-04-14 09:37:51
设置这个
error_reporting(E_ALL);或者使用以下命令创建自己的错误处理程序
set_error_handler('customHandler')和如下所示的函数
function customHandler( $error, $string, $page, $line, $contextArray )
{
//$error will be PHP name (E_ERROR, E_NOTICE, etc)
}https://stackoverflow.com/questions/23050643
复制相似问题