web-dev-qa-db-ja.com

PHPで現在設定されているエラー報告レベルを表示(エコー/印刷)するにはどうすればよいですか?

私はかなり大規模なプロジェクト(複数のチーム)に取り組んでいるため、コードを完全に制御することはできません。残念ながら、error_reportingはコード全体の多くの場所で変更されています。コードの特定のポイントに到達したら、現在どのエラーレポートが設定されているかを確認したいと思います。これを達成する方法はありますか?

26
Trevor

http://www.php.net/error_reporting

int error_reporting ([ int $level ] )

レベルパラメータが指定されていない場合は、古いerror_reportingレベルまたは現在のレベルを返します。

レベル(整数として返される)を文字列にキャストするために、リンクによって提供される例を使用することもできます。例えば:

_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(), ',');として使用します

41
Cheery

パラメータなしでerror_reporting()を使用します。現在のエラーレベルを返します。

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

7
evan