Предопределенные константы

Перечисленные ниже константы всегда доступны как часть ядра PHP.

Замечание: 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. since PHP 4
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. since PHP 4
64 E_COMPILE_ERROR (integer) Fatal compile-time errors. This is like an E_ERROR, except it is generated by the Zend Scripting Engine. since PHP 4
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. since PHP 4
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(). since PHP 4
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(). since PHP 4
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(). since PHP 4
2048 E_STRICT (integer) Run-time notices. Enable to have PHP suggest changes to your code which will ensure the best interoperability and forward compatibility of your code. since PHP 5
4096 E_RECOVERABLE_ERROR (integer) Catchable fatal error. It indicates that a probably dangerous error occured, 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
8191 E_ALL (integer) All errors and warnings, as supported, except of level E_STRICT in PHP < 6. 6143 in PHP 5.2.x and 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

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