PHP 8.4.0 RC4 available for testing

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.

Erreurs et historique
Valeur Constantes Description Note
1 E_ERROR (int) 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 (int) 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 (int) 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 (int) 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 (int) 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 (int) 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 (int) 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 (int) 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 (int) 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 (int) 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 (int) 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 (int) Permet d'obtenir des suggestions de PHP pour modifier votre code, assurant ainsi une meilleure interopérabilité et compatibilité de celui-ci.  
4096 E_RECOVERABLE_ERROR (int) 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.  
8192 E_DEPRECATED (int) 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.  
16384 E_USER_DEPRECATED (int) Message d'alerte généré par l'utilisateur. Fonctionne de la même façon que E_DEPRECATED, mis à part que le message est généré par votre code PHP en utilisant la fonction trigger_error().  
32767 E_ALL (int) Toutes les erreurs, alertes et notices.  

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.

add a note

User Contributed Notes 8 notes

up
24
Andy at Azurite (co uk)
13 years ago
-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 :-)
up
23
russthom at fivegulf dot com
12 years ago
[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
"";
}
?>
up
15
fadhilinjagi at gmail dot com
3 years ago
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.
up
15
bbrokman at gmail dot com
5 years ago
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)
)
);

?>
up
12
cl at viazenetti dot de
6 years ago
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++;
}
?>
up
6
kezzyhko at NOSPAM dot semysha dot ru
8 years ago
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'], 1, 15, true))[$type];

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

?>
up
3
kaioker
3 years ago
super simple error code to human readable conversion:

function prettycode($code){
return $code == 0 ? "FATAL" : array_search($code, get_defined_constants(true)['Core']);
}
up
1
ErikBachmann
5 years ago
<?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( 1 ) . "]". PHP_EOL;
echo
"[".getErrorTypeByValue( 0 ) . "]". PHP_EOL;
echo
"[".getErrorTypeByValue( 8 ) . "]". PHP_EOL;
?>

Will give
[E_ERROR=1]
[]
[E_NOTICE=8]
To Top