PHP抛出“未定义的变量”通知

时间:2010-12-17 21:32:12

标签: php error-reporting

我想记录除了未定义的变量条目之外的所有错误......不应该这样做吗?

    error_reporting(E_ERROR | E_WARNING | E_PARSE);

2 个答案:

答案 0 :(得分:9)

它会隐藏所有通知,但是应该这样做:

error_reporting(E_ALL ^ E_NOTICE);

你应该解决问题。

答案 1 :(得分:1)

通过自定义错误处理程序记录这些通知。这是你必须适应的事情。查找set_error_handler()及其定义的函数。它有一个声明如下:

function user_err_log ($errno, $errstr, $file, $line, $context) {

并且您想检查$errno以将通知与错误分开:

    if ($errno == E_NOTICE or $errno == E_USER_NOTICE) {
         // log to a debug file instead
         return;
    }

error_reporting(0x0000)和错误抑制运算符@优于isset语法抑制的优势在于重要通知仍然可以到达自定义错误处理程序。但如果你不关心它们,你必须手动对它们进行排序。哪个记录错误 ,你不应该这样做。 (为了以防万一,我个人会设计一种方法来在其他地方发布通知。)