我正在调用的函数call_user_func
应该返回FALSE。那么如果可调用无效,我如何检测错误呢?
(旁注:为什么他们没有抛出异常而不是返回错误代码?或者有没有办法“捕获”错误?我有一个错误句柄。我应该让它为我抛出异常吗?)
如果你想检查要调用的函数或方法是否真的存在,你可以使用is_callable http://www.php.net/manual/en/function.is-callable.php打电话之前call_user_func http://se.php.net/call_user_func。您可以将整个事情包装在一个函数中以便于重用:
function call_uf($fn) {
if(is_callable($fn)) {
return call_user_func($fn);
} else {
throw new Exception("$fn is not callable");
}
}
您在评论中询问为什么 PHP 会引发错误而不是使用异常。我认为这是因为异常仅在 PHP5 中引入,因此大多数 PHP 函数都依赖于错误报告。似乎有办法解决这个问题,因为手册 http://www.php.net/manual/en/language.exceptions.php表示:
PHP内部函数主要使用错误报告 http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting,仅现代面向对象 http://www.php.net/manual/en/language.oop5.php扩展使用异常。但是,错误可以简单地转换为异常错误异常 http://www.php.net/manual/en/class.errorexception.php.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)