2012-02-06 15 views
21

Tôi đang làm việc trên một dự án khá lớn (nhiều nhóm) nên tôi không có toàn quyền kiểm soát mã. Thật không may, error_reporting được thay đổi ở nhiều nơi trong suốt mã. Khi tôi đến một điểm nhất định trong mã, tôi muốn xem báo cáo lỗi nào hiện được đặt thành. Có cách nào để thực hiện điều này?Làm cách nào để hiển thị (echo/print) mức báo cáo lỗi hiện tại được đặt trong PHP?

Trả lời

36

http://www.php.net/error_reporting

int error_reporting ([ int $level ])

Trả về mức error_reporting cũ hoặc mức hiện nay nếu không có mức độ tham số được đưa ra.

Bạn cũng có thể sử dụng các ví dụ do liên kết cung cấp để truyền cấp độ (được trả về dưới dạng số nguyên) vào chuỗi. Ví dụ:

function error_level_tostring($intval, $separator = ',') 
{ 
    $errorlevels = array(
     E_ALL => 'E_ALL', 
     E_USER_DEPRECATED => 'E_USER_DEPRECATED', 
     E_DEPRECATED => 'E_DEPRECATED', 
     E_RECOVERABLE_ERROR => 'E_RECOVERABLE_ERROR', 
     E_STRICT => 'E_STRICT', 
     E_USER_NOTICE => 'E_USER_NOTICE', 
     E_USER_WARNING => 'E_USER_WARNING', 
     E_USER_ERROR => 'E_USER_ERROR', 
     E_COMPILE_WARNING => 'E_COMPILE_WARNING', 
     E_COMPILE_ERROR => 'E_COMPILE_ERROR', 
     E_CORE_WARNING => 'E_CORE_WARNING', 
     E_CORE_ERROR => 'E_CORE_ERROR', 
     E_NOTICE => 'E_NOTICE', 
     E_PARSE => 'E_PARSE', 
     E_WARNING => 'E_WARNING', 
     E_ERROR => 'E_ERROR'); 
    $result = ''; 
    foreach($errorlevels as $number => $name) 
    { 
     if (($intval & $number) == $number) { 
      $result .= ($result != '' ? $separator : '').$name; } 
    } 
    return $result; 
} 

sử dụng nó như là echo error_level_tostring(error_reporting(), ',');

+0

Brilliant! Cảm ơn bạn đã chia sẻ điều này. – chrisdillon