Predefined Constants

The constants below are always available as part of the PHP core.

Note: You may use these constant names in php.ini but not outside of PHP, like in httpd.conf, where you'd use the bitmask values instead.

Errors and Logging
Value Constant Description Note
1 E_ERROR (integer) Fatal run-time errors. These indicate errors that can not be recovered from, such as a memory allocation problem. Execution of the script is halted.  
2 E_WARNING (integer) Run-time warnings (non-fatal errors). Execution of the script is not halted.  
4 E_PARSE (integer) Compile-time parse errors. Parse errors should only be generated by the parser.  
8 E_NOTICE (integer) Run-time notices. Indicate that the script encountered something that could indicate an error, but could also happen in the normal course of running a script.  
16 E_CORE_ERROR (integer) Fatal errors that occur during PHP's initial startup. This is like an E_ERROR, except it is generated by the core of PHP.  
32 E_CORE_WARNING (integer) Warnings (non-fatal errors) that occur during PHP's initial startup. This is like an E_WARNING, except it is generated by the core of PHP.  
64 E_COMPILE_ERROR (integer) Fatal compile-time errors. This is like an E_ERROR, except it is generated by the Zend Scripting Engine.  
128 E_COMPILE_WARNING (integer) Compile-time warnings (non-fatal errors). This is like an E_WARNING, except it is generated by the Zend Scripting Engine.  
256 E_USER_ERROR (integer) User-generated error message. This is like an E_ERROR, except it is generated in PHP code by using the PHP function trigger_error().  
512 E_USER_WARNING (integer) User-generated warning message. This is like an E_WARNING, except it is generated in PHP code by using the PHP function trigger_error().  
1024 E_USER_NOTICE (integer) User-generated notice message. This is like an E_NOTICE, except it is generated in PHP code by using the PHP function trigger_error().  
2048 E_STRICT (integer) Enable to have PHP suggest changes to your code which will ensure the best interoperability and forward compatibility of your code. Since PHP 5 but not included in E_ALL until PHP 5.4.0
4096 E_RECOVERABLE_ERROR (integer) Catchable fatal error. It indicates that a probably dangerous error occurred, but did not leave the Engine in an unstable state. If the error is not caught by a user defined handle (see also set_error_handler()), the application aborts as it was an E_ERROR. Since PHP 5.2.0
8192 E_DEPRECATED (integer) Run-time notices. Enable this to receive warnings about code that will not work in future versions. Since PHP 5.3.0
16384 E_USER_DEPRECATED (integer) User-generated warning message. This is like an E_DEPRECATED, except it is generated in PHP code by using the PHP function trigger_error(). Since PHP 5.3.0
32767 E_ALL (integer) All errors and warnings, as supported, except of level E_STRICT prior to PHP 5.4.0. 32767 in PHP 5.4.x, 30719 in PHP 5.3.x, 6143 in PHP 5.2.x, 2047 previously

The above values (either numerical or symbolic) are used to build up a bitmask that specifies which errors to report. You can use the bitwise operators to combine these values or mask out certain types of errors. Note that only '|', '~', '!', '^' and '&' will be understood within php.ini.

Коментарии

-1 is also semantically meaningless as a bit field, and only works in 2s-complement numeric representations.  On a 1s-complement system -1 would not set E_ERROR.  On a sign-magnitude system -1 would set nothing at all! (see e.g. http://en.wikipedia.org/wiki/Ones%27_complement)

If you want to set all bits, ~0 is the correct way to do it.

But setting undefined bits could result in undefined behaviour and that means *absolutely anything* could happen :-)
2011-04-16 07:15:20
http://php5.kiev.ua/manual/ru/errorfunc.constants.html
[Editor's note: fixed E_COMPILE_* cases that incorrectly returned E_CORE_* strings. Thanks josiebgoode.]

The following code expands on Vlad's code to show all the flags that are set.  if not set, a blank line shows.

<?php
$errLvl 
error_reporting();
for (
$i 0$i 15$i++ ) {
    print 
FriendlyErrorType($errLvl pow(2$i)) . "<br>\\n"
}

function 
FriendlyErrorType($type)
{
    switch(
$type)
    {
        case 
E_ERROR// 1 //
           
return 'E_ERROR';
        case 
E_WARNING// 2 //
           
return 'E_WARNING';
        case 
E_PARSE// 4 //
           
return 'E_PARSE';
        case 
E_NOTICE// 8 //
           
return 'E_NOTICE';
        case 
E_CORE_ERROR// 16 //
           
return 'E_CORE_ERROR';
        case 
E_CORE_WARNING// 32 //
           
return 'E_CORE_WARNING';
        case 
E_COMPILE_ERROR// 64 //
           
return 'E_COMPILE_ERROR';
        case 
E_COMPILE_WARNING// 128 //
           
return 'E_COMPILE_WARNING';
        case 
E_USER_ERROR// 256 //
           
return 'E_USER_ERROR';
        case 
E_USER_WARNING// 512 //
           
return 'E_USER_WARNING';
        case 
E_USER_NOTICE// 1024 //
           
return 'E_USER_NOTICE';
        case 
E_STRICT// 2048 //
           
return 'E_STRICT';
        case 
E_RECOVERABLE_ERROR// 4096 //
           
return 'E_RECOVERABLE_ERROR';
        case 
E_DEPRECATED// 8192 //
           
return 'E_DEPRECATED';
        case 
E_USER_DEPRECATED// 16384 //
           
return 'E_USER_DEPRECATED';
    }
    return 
"";
}
?>
2012-07-16 21:25:27
http://php5.kiev.ua/manual/ru/errorfunc.constants.html
As for me, the best way to get error name by int value is that. And it's works fine for me ;)
<?php

array_flip
(array_slice(get_defined_constants(true)['Core'], 115true))[$type];

//the same in readable form
array_flip(
   
array_slice(
       
get_defined_constants(true)['Core'],
       
1,
       
15,
       
true
   
)
)[
$type]

?>
2016-08-13 21:58:34
http://php5.kiev.ua/manual/ru/errorfunc.constants.html
An other way to get all PHP errors  that are set to be reported. This code will even work, when additional error types are added in future.

<?php
$pot 
0;
foreach (
array_reverse(str_split(decbin(error_reporting()))) as $bit) {
    if (
$bit == 1) {
        echo 
array_search(pow(2$pot), get_defined_constants(true)['Core']). "<br>\n";
    }
   
$pot++;
}
?>
2017-11-24 19:24:12
http://php5.kiev.ua/manual/ru/errorfunc.constants.html
A neat way to have a place in code to control error reporting configuration :)

<?php

$errorsActive 
= [
   
E_ERROR             => FALSE,
   
E_WARNING           => TRUE,
   
E_PARSE             => TRUE,
   
E_NOTICE            => TRUE,
   
E_CORE_ERROR        => FALSE,
   
E_CORE_WARNING      => FALSE,
   
E_COMPILE_ERROR     => FALSE,
   
E_COMPILE_WARNING   => FALSE,
   
E_USER_ERROR        => TRUE,
   
E_USER_WARNING      => TRUE,
   
E_USER_NOTICE       => TRUE,
   
E_STRICT            => FALSE,
   
E_RECOVERABLE_ERROR => TRUE,
   
E_DEPRECATED        => FALSE,
   
E_USER_DEPRECATED   => TRUE,
   
E_ALL               => FALSE,
];

error_reporting(
   
array_sum(
       
array_keys($errorsActive$search true)
    )
);

?>
2019-06-01 14:14:22
http://php5.kiev.ua/manual/ru/errorfunc.constants.html
Автор:
<?php
function getErrorTypeByValue($type) {
   
$constants  get_defined_constants(true);

    foreach ( 
$constants['Core'] as $key => $value ) { // Each Core constant
       
if ( preg_match('/^E_/'$key  ) ) {    // Check error constants
           
if ( $type == $value 
                return( 
"$key=$value");
        }
    }
}   
// getErrorTypeByValue() 

echo "[".getErrorTypeByValue) . "]"PHP_EOL;
echo 
"[".getErrorTypeByValue) . "]"PHP_EOL;
echo 
"[".getErrorTypeByValue) . "]"PHP_EOL;
?>

Will give
    [E_ERROR=1]
    []
    [E_NOTICE=8]
2019-06-19 13:39:32
http://php5.kiev.ua/manual/ru/errorfunc.constants.html
Автор:
super simple error code to human readable conversion:

function prettycode($code){
    return $code == 0 ? "FATAL" : array_search($code, get_defined_constants(true)['Core']);
}
2021-09-22 22:47:03
http://php5.kiev.ua/manual/ru/errorfunc.constants.html
A simple and neat way to get the error level from the error code. You can even customize the error level names further.

<?php
$exceptions 
= [
       
E_ERROR => "E_ERROR",
       
E_WARNING => "E_WARNING",
       
E_PARSE => "E_PARSE",
       
E_NOTICE => "E_NOTICE",
       
E_CORE_ERROR => "E_CORE_ERROR",
       
E_CORE_WARNING => "E_CORE_WARNING",
       
E_COMPILE_ERROR => "E_COMPILE_ERROR",
       
E_COMPILE_WARNING => "E_COMPILE_WARNING",
       
E_USER_ERROR => "E_USER_ERROR",
       
E_USER_WARNING => "E_USER_WARNING",
       
E_USER_NOTICE => "E_USER_NOTICE",
       
E_STRICT => "E_STRICT",
       
E_RECOVERABLE_ERROR => "E_RECOVERABLE_ERROR",
       
E_DEPRECATED => "E_DEPRECATED",
       
E_USER_DEPRECATED => "E_USER_DEPRECATED",
       
E_ALL => "E_ALL"
];

echo 
$exceptions["1"];
$code 256;
echo 
$exceptions[$code];
?>

Output: 
E_ERROR
E_USER_ERROR

This will need updating when PHP updates the error level names. Otherwise, it works just fine.
2021-09-29 21:57:13
http://php5.kiev.ua/manual/ru/errorfunc.constants.html

    Поддержать сайт на родительском проекте КГБ