首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数参数计数不匹配的错误可以打开吗?

函数参数计数不匹配的错误可以打开吗?
EN

Stack Overflow用户
提问于 2014-04-14 09:36:11
回答 2查看 389关注 0票数 3

我有一个只接受一个参数的函数,但我不小心给它传了两个参数。它默默地失败了。我没有意识到第二个参数被忽略了,所以它花了一段时间来调试。

对于这种情况,有没有打开错误检查的方法?

EN

回答 2

Stack Overflow用户

发布于 2014-04-14 09:38:14

我怀疑当传递的参数比函数签名中指定的更多时,不可能全局地导致错误,因为PHP支持通过func_get_args()等方式在用户定义函数中使用可变数量的参数。如果您使用比签名中指定的参数更少的参数调用函数,PHP将报告一个错误(在编写此答案时级别为E_WARNING ),但如果您使用比签名中指定的参数更多的参数调用函数,PHP将不会报告错误。

这并不完全是你特别要求的,但是如果你确实需要这个行为,你当然可以编写代码来强制执行一个参数。

代码语言:javascript
复制
function foo($only_param) {
   if (func_num_args() > 1) {
      trigger_error(__FUNCTION__ . "(): Too many params", E_USER_ERROR);
   }
   ...
}
票数 2
EN

Stack Overflow用户

发布于 2014-04-14 09:37:51

设置这个

代码语言:javascript
复制
error_reporting(E_ALL);

或者使用以下命令创建自己的错误处理程序

代码语言:javascript
复制
set_error_handler('customHandler')

和如下所示的函数

代码语言:javascript
复制
function customHandler( $error, $string, $page, $line, $contextArray )
{
     //$error will be PHP name (E_ERROR, E_NOTICE, etc)
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23050643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档