-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 :-)
Constantes pré-definidas
As constantes listadas abaixo estão sempre disponíveis como parte do núcleo do PHP.
Nota: Você pode usar estes nomes de constantes no php.ini mas não fora do PHP, como no httpd.conf, aonde você deve usar os valores.
| Valor | Constante | Descrição | Nota |
|---|---|---|---|
| 1 |
E_ERROR
(integer)
|
Erros fatais em tempo de execução. Estes indicam erros que não podem ser recuperados, como problemas de alocação de memória. A execução do script é interrompida. | |
| 2 |
E_WARNING
(integer)
|
Avisos em tempo de execução (erros não fatais). A execução do script não é interrompida. | |
| 4 |
E_PARSE
(integer)
|
Erro em tempo de compilação. Erros gerados pelo interpretador. | |
| 8 |
E_NOTICE
(integer)
|
Notícia em tempo de execução. Indica que o script encontrou alguma coisa que pode indicar um erro, mas que também possa acontecer durante a execução normal do script. | |
| 16 |
E_CORE_ERROR
(integer)
|
Erro fatal que acontece durante a inicialização do PHP. Este é parecido com
E_ERROR, exceto que é gerado pelo núcleo do PHP.
|
desde o PHP 4 |
| 32 |
E_CORE_WARNING
(integer)
|
Avisos (erros não fatais) que aconteçam durante a inicialização do PHP.
Este é parecido com E_WARNING, exceto que é gerado pelo
núcleo do PHP.
|
desde o PHP 4 |
| 64 |
E_COMPILE_ERROR
(integer)
|
Erro fatal em tempo de compilação. Este é parecido com E_ERROR,
exceto que é gerado pelo Zend Scripting Engine.
|
desde o PHP 4 |
| 128 |
E_COMPILE_WARNING
(integer)
|
Aviso em tempo de compilação. Este é parecido com
E_WARNING, exceto que é geredo pelo Zend
Scripting Engine.
|
desde o PHP 4 |
| 256 |
E_USER_ERROR
(integer)
|
Erro gerado pelo usuário. Este é parecido com
E_ERROR, exceto que é gerado pelo código PHP
usando a função trigger_error().
|
desde o PHP 4 |
| 512 |
E_USER_WARNING
(integer)
|
Aviso gerado pelo usuário. Este é parecido com
E_WARNING, exceto que é gerado pelo código PHP
usando a função trigger_error().
|
desde o PHP 4 |
| 1024 |
E_USER_NOTICE
(integer)
|
Notícia gerada pelo usuário. Este é parecido com
E_NOTICE, exceto que é gerado pelo código PHP
usando a função trigger_error().
|
desde o PHP 4 |
| 2048 |
E_STRICT
(integer)
|
Notícias em tempo de execução. Permite ao PHP sugerir mudanças ao seu código as quais irão assegurar melhor interoperabilidade e compatibilidade futura do seu código. | desde o PHP 5 |
| 4096 |
E_RECOVERABLE_ERROR
(integer)
|
Erro fatal capturável. Indica que um erro provavelmente perigoso
aconteceu, mas não deixou o Engine em um estado instável. Se o erro não
for pego por uma manipulador definido pelo usuário (veja também
set_error_handler()), a aplicação é abortada como se
fosse um E_ERROR.
|
desde o PHP 5.2.0 |
| 8192 |
E_DEPRECATED
(integer)
|
Avisos em tempo de execução. Habilite-o para receber avisos sobre código que não funcionará em futuras versões. | desde o PHP 5.3.0 |
| 16384 |
E_USER_DEPRECATED
(integer)
|
Mensagem de aviso gerado pelo usuário. Este é como um
E_DEPRECATED, exceto que é gerado em código PHP usando
a função trigger_error().
|
desde o PHP 5.3.0 |
| 30719 |
E_ALL
(integer)
|
Todos erros e avisos, como suportado, exceto de nível
E_STRICT no PHP < 6.
|
32767 no PHP 6, 30719 no PHP 5.3.x, 6143 no PHP 5.2.x, 2047 anteriormente |
Os valores acima (numéricos ou simbolicos) são usados para criar um bitmask que especifica quais erros reportar.Você pode usar os operadores Bit-a-bit para combinar estes valores ou mascarar certos tipos de erro. Note que somente '|', '~', '!', '^' and '&' serão ententidos dentro do php.ini.
Andy at Azurite (co uk) ¶
2 years ago
frozenfire at php dot net ¶
1 year ago
Please note that a bug exists in Xdebug versions up to at least 2.1.2 where E_USER_DEPRECATED is not supported even in PHP 5.3.0+.
PhpMyCoder ¶
2 years ago
Well, technically -1 will show all errors which includes any new ones included by PHP. My guess is that E_ALL will always include new error constants so I usually prefer:
<?php
error_reporting(E_ALL | E_STRICT);
?>
Reason being: With a quick glance anyone can tell you what errors are reported. -1 might be a bit more cryptic to newer programmers.
wolfrageweb.com ¶
3 years ago
-1 sets the error reporting to show all to include strict. Should only be used for development servers.
russthom at fivegulf dot com ¶
10 months ago
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_CORE_ERROR: // 64 //
return 'E_COMPILE_ERROR';
case E_CORE_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 "";
}
?>
vladvarna at gmail dot com ¶
1 year ago
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_CORE_ERROR: // 64 //
return 'E_COMPILE_ERROR';
case E_CORE_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 $type;
}
Anonymous ¶
8 months ago
this would give you all the reported exception list of your configuration.
<?php
function FriendlyErrorType($type)
{
$return ="";
if($type & E_ERROR) // 1 //
$return.='& E_ERROR ';
if($type & E_WARNING) // 2 //
$return.='& E_WARNING ';
if($type & E_PARSE) // 4 //
$return.='& E_PARSE ';
if($type & E_NOTICE) // 8 //
$return.='& E_NOTICE ';
if($type & E_CORE_ERROR) // 16 //
$return.='& E_CORE_ERROR ';
if($type & E_CORE_WARNING) // 32 //
$return.='& E_CORE_WARNING ';
if($type & E_COMPILE_ERROR) // 64 //
$return.='& E_COMPILE_ERROR ';
if($type & E_COMPILE_WARNING) // 128 //
$return.='& E_COMPILE_WARNING ';
if($type & E_USER_ERROR) // 256 //
$return.='& E_USER_ERROR ';
if($type & E_USER_WARNING) // 512 //
$return.='& E_USER_WARNING ';
if($type & E_USER_NOTICE) // 1024 //
$return.='& E_USER_NOTICE ';
if($type & E_STRICT) // 2048 //
$return.='& E_STRICT ';
if($type & E_RECOVERABLE_ERROR) // 4096 //
$return.='& E_RECOVERABLE_ERROR ';
if($type & E_DEPRECATED) // 8192 //
$return.='& E_DEPRECATED ';
if($type & E_USER_DEPRECATED) // 16384 //
$return.='& E_USER_DEPRECATED ';
return substr($return,2);
}
echo "error_reporting = " . FriendlyErrorType(ini_get('error_reporting')) .";<br>";
?>
