Как я могу отобразить (echo / print) текущий установленный уровень отчетов об ошибках в PHP? - PullRequest
24 голосов
/ 07 февраля 2012

Я работаю над довольно крупным проектом (несколько команд), поэтому я не имею полного контроля над кодом. К сожалению, error_reporting изменяется во многих местах кода. Когда я добираюсь до определенной точки в коде, я хочу увидеть, какой отчет об ошибках в настоящее время установлен. Есть ли способ сделать это?

Ответы [ 2 ]

41 голосов
/ 07 февраля 2012

http://www.php.net/error_reporting

int error_reporting ([ int $level ] )

Возвращает старый уровень error_reporting или текущий уровень, если параметр уровня не указан.

Youтакже может использовать примеры, предоставленные ссылкой, чтобы привести уровень (который возвращается как целое число) в строку.Например:

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;
}

используйте его как echo error_level_tostring(error_reporting(), ',');

7 голосов
/ 07 февраля 2012

Используйте error_reporting() без параметров. Он вернет текущий уровень ошибки.

http://php.net/manual/en/function.error-reporting.php

...