-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 :-)
Vordefinierte Konstanten
Die aufgelisteten Konstanten stehen immer zur Verfügung, da sie zum Grundbestand von PHP gehören.
Hinweis: Sie können diese Konstanten innerhalb von php.ini benutzen, aber nicht ausserhalb von PHP, wie etwa in der httpd.conf, wo Sie stattdessen die Werte der Bitmasken benutzen sollten.
| Wert | Konstante | Beschreibung | Bemerkung |
|---|---|---|---|
| 1 |
E_ERROR
(integer)
|
Fatale Laufzeit-Fehler. Dies zeigt Fehler an, die nicht behoben werden können. Beispielsweise Probleme bei der Speicherzuweisung. Die Ausführung des Skripts wird abgebrochen. | |
| 2 |
E_WARNING
(integer)
|
Warnungen (keine fatalen Fehler) zur Laufzeit des Skripts. Das Skript wird nicht abgebrochen. | |
| 4 |
E_PARSE
(integer)
|
Parser-Fehler während der Übersetzung. Parser-Fehler können nur vom Parser erzeugt werden. | |
| 8 |
E_NOTICE
(integer)
|
Benachrichtigungen während der Laufzeit. Sie zeigen an, dass im Skript irgend etwas gefunden wurde, was einen Fehler verursachen könnte. Es ist aber genauso möglich, dass Benachrichtigungen im ordnungsgemäßen Ablauf eines Skripts ausgegeben werden. | |
| 16 |
E_CORE_ERROR
(integer)
|
Fatale Fehler, die beim Starten von PHP auftreten. Diese sind
ähnlich wie E_ERROR, nur dass diese
Fehlermeldungen vom PHP-Kern erzeugt werden.
|
Seit PHP 4 |
| 32 |
E_CORE_WARNING
(integer)
|
Warnungen (keine fatalen Fehler), die beim Starten von PHP
auftreten. Diese sind ähnlich wie E_WARNING,
nur dass diese Warnungen vom PHP-Kern erzeugt werden.
|
Seit PHP 4 |
| 64 |
E_COMPILE_ERROR
(integer)
|
Fatale Fehler zur Übersetzungszeit. Diese sind ähnlich wie
E_ERROR, nur dass diese Fehlermeldungen
von der Zend Scripting Engine erzeugt werden.
|
Seit PHP 4 |
| 128 |
E_COMPILE_WARNING
(integer)
|
Warnungen zur Übersetzungszeit. Diese sind ähnlich wie
E_WARNING, nur dass diese Warnungen
von der Zend Scripting Engine erzeugt werden.
|
seit PHP 4 |
| 256 |
E_USER_ERROR
(integer)
|
Benutzerdefinierte Fehlermeldungen. Diese sind ähnlich wie
E_ERROR, nur dass diese Fehlermeldungen
im PHP-Code mit trigger_error() erzeugt werden.
|
Seit PHP 4 |
| 512 |
E_USER_WARNING
(integer)
|
Benutzerdefinierte Warnungen. Diese sind ähnlich wie E_WARNING,
nur dass diese Warnungen im PHP-Code mit
trigger_error() erzeugt werden.
|
seit PHP 4 |
| 1024 |
E_USER_NOTICE
(integer)
|
Benutzerdefinierte Benachrichtigung. Diese sind ähnlich wie
E_NOTICE,
nur dass diese Benachrichtigungen im PHP-Code mit
trigger_error() erzeugt werden.
|
Seit PHP 4 |
| 2048 |
E_STRICT
(integer)
|
Benachrichtigungen des Laufzeitsystems. Damit erhalten Sie von PHP Vorschläge für Änderungen des Programmcodes, die eine bestmögliche Interoperabilität und zukünftige Kompatibilität Ihres Codes gewährleisten. | Seit PHP 5, aber vor PHP 5.4.0 nicht in E_ALL enthalten |
| 4096 |
E_RECOVERABLE_ERROR
(integer)
|
Abfangbarer fataler Fehler. Dies bedeutet das ein potentiell
gefährlicher Fehler aufgetreten ist, die Engine aber nicht in
einem instabilen Zustand hinterlassen hat. Wird der Fehler
nicht durch eine benutzerdefinierte Fehlerbehandlungsroutine
abgefangen (siehe auch set_error_handler())
so wird die Anwendung wie bei einem E_ERROR
Fehler abgebrochen.
|
Seit PHP 5.2.0 |
| 8192 |
E_DEPRECATED
(integer)
|
Notices zur Laufzeit des Programms. Aktivieren Sie diese Einstellung, um Warnungen über Codebestandteile zu erhalten, die in zukünftigen PHP-Versionen nicht mehr funktionieren werden. | Seit PHP 5.3.0 |
| 16384 |
E_USER_DEPRECATED
(integer)
|
Benutzererzeugte Warnmeldung. Diese entspricht
E_DEPRECATED mit der Ausnahme, dass sie im PHP-Code
durch die Verwendung der Funktion trigger_error()
generiert wurde.
|
Seit PHP 5.3.0 |
| 32767 |
E_ALL
(integer)
|
Alle Fehler und Warnungen die unterstützt werden, mit Ausnahme
von E_STRICT.
|
32767 in PHP 5.4.x, 30719 in PHP 5.3.x, 6143 in PHP 5.2.x, 2047 previously |
Mit den obengennnten Werten (sowohl nummerisch als auch mit den Konstanten) wird eine Bitmaske erzeugt, die festlegt, welche Fehler angezeigt werden sollen. Mit den Bit Operatoren können Sie diese Werte kombinieren oder bestimmte Fehlertypen ausmaskieren. Beachten Sie, dass innerhalb von php.ini jedoch nur '|', '~', '!', '^' und '&' verstanden wird.
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>";
?>
