在您建议使用isset
或empty
或array_key_exists
之前 - 我知道。
我继承了一个包含近百万行代码的旧项目。我想启用E_NOTICE
,但我充斥着消息。作为一个临时解决方案,我通过这样做来抑制“未定义的索引”错误:
function _global_error_handler($level, $message, $filename, $line_no, $context) {
if($level===E_NOTICE && substr($message,0,16)==='Undefined index:') return false;
但是我希望有一些方法可以通过INI设置或其他方式完全禁用通知。我不希望每次发生这种情况时调用全局错误处理程序的开销。
答案 0 :(得分:2)
不,没有办法比E_*
常量更具体,没有像你现在那样手动解析错误条件。
我现在建议的是禁用E_NOTICE
错误。当你有机会(应该尽可能快),再次启用它们并尽可能多地进行修复。