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

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

Замечание: Данные имена констант можно использовать в файле php.ini но не вне PHP, как например в файле httpd.conf, где вместо них необходимо использовать значения их битовых масок.

Ошибки и протоколирование
Значение Константа Описание Примечание
1 E_ERROR (integer) Фатальные ошибки времени выполнения. Это неустранимые средствами самого скрипта ошибки, такие как ошибка распределения памяти и т.п. Выполнение скрипта в таком случае прекращается.  
2 E_WARNING (integer) Предупреждения времени выполнения (не фатальные ошибки). Выполнение скрипта в таком случае не прекращается.  
4 E_PARSE (integer) Ошибки на этапе компиляции. Должны генерироваться только парсером.  
8 E_NOTICE (integer) Уведомления времени выполнения. Указывают на то, что во время выполнения скрипта произошло что-то, что может указывать на ошибку, хотя это может происходить и при обычном выполнении программы.  
16 E_CORE_ERROR (integer) Фатальные ошибки, которые происходят во время запуска РНР. Такие ошибки схожи с E_ERROR, за исключением того, что они генерируются ядром PHP.  
32 E_CORE_WARNING (integer) Предупреждения (не фатальные ошибки), которые происходят во время начального запуска РНР. Такие предупреждения схожи с E_WARNING, за исключением того, что они генерируются ядром PHP.  
64 E_COMPILE_ERROR (integer) Фатальные ошибки на этапе компиляции. Такие ошибки схожи с E_ERROR, за исключением того, что они генерируются скриптовым движком Zend.  
128 E_COMPILE_WARNING (integer) Предупреждения на этапе компиляции (не фатальные ошибки). Такие предупреждения схожи с E_WARNING, за исключением того, что они генерируются скриптовым движком Zend.  
256 E_USER_ERROR (integer) Сообщения об ошибках сгенерированные пользователем. Такие ошибки схожи с E_ERROR, за исключением того, что они генерируются в коде скрипта средствами функции PHP trigger_error().  
512 E_USER_WARNING (integer) Предупреждения сгенерированные пользователем. Такие предупреждения схожи с E_WARNING, за исключением того, что они генерируются в коде скрипта средствами функции PHP trigger_error().  
1024 E_USER_NOTICE (integer) Уведомления сгенерированные пользователем. Такие уведомления схожи с E_NOTICE, за исключением того, что они генерируются в коде скрипта, средствами функции PHP trigger_error().  
2048 E_STRICT (integer) Включаются для того, чтобы PHP предлагал изменения в коде, которые обеспечат лучшее взаимодействие и совместимость кода. Начиная с PHP 5, но не включены в E_ALL вплоть до PHP 5.4.0
4096 E_RECOVERABLE_ERROR (integer) Фатальные ошибки с возможностью обработки. Такие ошибки указывают, что, вероятно, возникла опасная ситуация, но при этом, скриптовый движок остается в стабильном состоянии. Если такая ошибка не обрабатывается функцией, определенной пользователем для обработки ошибок (см. set_error_handler()), выполнение приложения прерывается, как происходит при ошибках E_ERROR. Начиная с PHP 5.2.0
8192 E_DEPRECATED (integer) Уведомления времени выполнения об использовании устаревших конструкций. Включаются для того, чтобы получать предупреждения о коде, который не будет работать в следующих версиях PHP. Начиная с PHP 5.3.0
16384 E_USER_DEPRECATED (integer) Уведомления времени выполнения об использовании устаревших конструкций, сгенерированные пользователем. Такие уведомления схожи с E_DEPRECATED за исключением того, что они генерируются в коде скрипта, с помощью функции PHP trigger_error(). Начиная с PHP 5.3.0
32767 E_ALL (integer) Все поддерживаемые ошибки и предупреждения, за исключением ошибок E_STRICT до PHP 5.4.0. 32767 в PHP 5.4.x, 30719 в PHP 5.3.x, 6143 в PHP 5.2.x, 2047 ранее

Представленные выше значения (как числовые, так и символьные) используются для задания битовой маски, определяющей об ошибках какого типа будет даваться отчет. Вы можете использовать побитовые операторы, чтобы совмещать эти значения для указания определенных типов ошибок. Стоит отметить, что в 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

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