-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é-définies
Les constantes listées ici sont toujours disponibles dans PHP.
Note: Vous pouvez utiliser ces constantes dans le fichier php.ini mais pas hors de PHP, comme dans le fichier httpd.conf, où vous devez utiliser les valeurs des champs de bits.
| Valeur | Constante | Description | Note |
|---|---|---|---|
| 1 |
E_ERROR
(entier)
|
Les erreurs sont aussi affichées par défaut, et l'exécution du script est interrompue. Elles indiquent des erreurs qui ne peuvent pas être ignorées, comme des problèmes d'allocation de mémoire, par exemple. | |
| 2 |
E_WARNING
(entier)
|
Les alertes sont affichées par défaut, mais n'interrompent pas l'exécution du script. Elles indiquent un problème qui doit être intercepté par le script durant l'exécution du script. Par exemple, appeler ereg() avec une expression rationnelle invalide. | |
| 4 |
E_PARSE
(entier)
|
Les erreurs d'analyse ne doivent être générées que par l'analyseur. Elles ne sont citées ici que dans le but d'être exhaustif. | |
| 8 |
E_NOTICE
(entier)
|
Les remarques ne sont pas affichées par défaut, et indiquent que le script a rencontré quelque chose qui peut être une erreur, mais peut aussi être un événement normal dans la vie du script. Par exemple, essayer d'accéder à une valeur qui n'a pas été déclarée, ou appeler stat() sur un fichier qui n'existe pas. | |
| 16 |
E_CORE_ERROR
(entier)
|
Elles sont similaires aux erreurs E_ERROR, mais
elles sont générées par le code source de PHP. Les fonctions
ne doivent pas générer ce genre d'erreur.
|
|
| 32 |
E_CORE_WARNING
(entier)
|
Elles sont similaires à E_WARNING, mais elles sont
générées par le code source de PHP. Les fonctions ne doivent
pas générer ce genre d'erreur.
|
|
| 64 |
E_COMPILE_ERROR
(entier)
|
Elles sont similaires à E_ERROR, mais elles sont générées
par le moteur Zend. Les fonctions ne doivent pas générer ce genre
d'erreur.
|
|
| 128 |
E_COMPILE_WARNING
(entier)
|
Elles sont similaires à E_WARNING, mais elles sont générées
par le moteur Zend. Les fonctions ne doivent pas générer ce genre
d'erreur.
|
|
| 256 |
E_USER_ERROR
(entier)
|
Message d'erreur généré par l'utilisateur. Comparable à
E_ERROR. Elle est générée par le programmeur en PHP
par l'utilisation de la fonction trigger_error().
Les fonctions de PHP ne doivent pas générer ce genre d'erreur.
|
|
| 512 |
E_USER_WARNING
(entier)
|
Message d'erreur généré par l'utilisateur. Comparable à
E_WARNING. Elle est générée par le programmeur en PHP
par l'utilisation de la fonction trigger_error().
Les fonctions de PHP ne doivent pas générer ce genre d'erreur.
|
|
| 1024 |
E_USER_NOTICE
(entier)
|
Message d'erreur généré par l'utilisateur. Comparable à
E_NOTICE. Elle est générée par le programmeur en PHP
par l'utilisation de la fonction trigger_error().
Les fonctions de PHP ne doivent pas générer ce genre d'erreur.
|
|
| 2048 |
E_STRICT
(entier)
|
Permet d'obtenir des suggestions de PHP pour modifier votre code, assurant ainsi une meilleure interopérabilité et compatibilité de celui-ci. | Depuis PHP 5 mais ne fais pas parti de
E_ALL jusqu'à PHP 5.4.0 |
| 4096 |
E_RECOVERABLE_ERROR
(entier)
|
Erreur fatale qui peut être captée. Ceci indique qu'une erreur
probablement dangereuse s'est produite, mais n'a pas laissé le moteur Zend
dans un état instable. Si l'erreur n'est pas attrapée par un
gestionnaire d'erreur défini par l'utilisateur (voyez aussi
set_error_handler(), l'application arrête
prématurément comme si cela était une E_ERROR.
|
Depuis PHP 5.2.0 |
| 8192 |
E_DEPRECATED
(entier)
|
Alertes d'exécution. Activer cette option pour recevoir des alertes sur les portions de votre code qui pourraient ne pas fonctionner avec les futures versions. | Depuis PHP 5.3.0 |
| 16384 |
E_USER_DEPRECATED
(entier)
|
Message d'alerte généré par l'utilisateur. Fonctionne de la même façon que
E_DEPRECATED, mise à part que le message est généré
par votre code PHP en utilisant la fonction trigger_error().
|
Depuis PHP 5.3.0 |
| 32767 |
E_ALL
(entier)
|
Toutes les erreurs et alertes supportées sauf le niveau
E_STRICT avant la version 5.4.0 de PHP.
|
32767 en PHP 5.4.x, 30719 en PHP 5.3.x, 6143 en PHP 5.2.x, et 2047 auparavant |
Les valeurs ci-dessus (numérique ou symbolique) sont utilisées pour constituer des champs de bits, qui spécifient le niveau de rapport d'erreur. Vous pouvez utiliser les opérateurs de bits pour combiner ces valeurs pour en faire des masques qui filtrent certaines erreurs. Notez bien que seuls '|', '~', '!', '^' et '&' seront compris dans le fichier 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>";
?>
