有没有办法将PHP错误常量映射到其名称(或人类可读的)?

时间:2016-08-07 14:01:20

标签: php error-handling

有各种PHP error constants描述各种错误和警告。

虽然我可以手动将这些错误常量映射到它们的相应值,但有没有更好的方法将这些映射到常量的名称,甚至更好,它们的人类可读名称(E_NOTICE - >“PHP Notice “)?

1 个答案:

答案 0 :(得分:0)

我希望我能理解你想要的东西。 我希望能成为你的帮助。

function ErrorType($type) 
    { 
        switch($type) 
        { 
            case E_ERROR: // 1 // 
                return 'ERROR'; 
            case E_WARNING: // 2 // 
                return 'WARNING'; 
            case E_PARSE: // 4 // 
                return 'PARSE'; 
            case E_NOTICE: // 8 // 
                return 'NOTICE'; 
            case E_CORE_ERROR: // 16 // 
                return 'CORE_ERROR'; 
            case E_CORE_WARNING: // 32 // 
                return 'CORE_WARNING'; 
            case E_COMPILE_ERROR: // 64 // 
                return 'COMPILE_ERROR'; 
            case E_COMPILE_WARNING: // 128 // 
                return 'COMPILE_WARNING'; 
            case E_USER_ERROR: // 256 // 
                return 'USER_ERROR'; 
            case E_USER_WARNING: // 512 // 
                return 'USER_WARNING'; 
            case E_USER_NOTICE: // 1024 // 
                return 'USER_NOTICE'; 
            case E_STRICT: // 2048 // 
                return 'STRICT'; 
            case E_RECOVERABLE_ERROR: // 4096 // 
                return 'RECOVERABLE_ERROR'; 
            case E_DEPRECATED: // 8192 // 
                return 'DEPRECATED'; 
            case E_USER_DEPRECATED: // 16384 // 
                return 'USER_DEPRECATED'; 
        } 
        return ""; 
    }
    function xhandler($errno,$errstr,$errfile,$errline,$context)
    {
        $errno = ErrorType($errno);
        error_log("PHP ".$errno.":  ".$errstr." in ".$errfile." on line ".$errline);
    }
    set_error_handler('xhandler',E_ALL);