-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 predefinidas
Estas constantes están disponibles siempre ya que forman parte del núcleo de PHP.
Note: Se pueden usar estos nombres de constantes en php.ini pero no fuera de PHP, como en httpd.conf, donde se deberían usar en su lugar valores de máscara de bits.
| Valor | Constante | Descripción | Nota |
|---|---|---|---|
| 1 | E_ERROR (integer) | Errores Fatales en tiempo de ejecución. Éstos indican errores que no se pueden recuperar, tales como un problema de asignación de memoria. La ejecución del script se interrumpe. | |
| 2 | E_WARNING (integer) | Advertencias en tiempo de ejecución (errores no fatales). La ejecución del script no se interrumpe. | |
| 4 | E_PARSE (integer) | Errores de análisis en tiempo de compilación. Los errores de análisis deberían ser generados únicamente por el analizador. | |
| 8 | E_NOTICE (integer) | Avisos en tiempo de ejecución. Indican que el script encontró algo que podría señalar un error, pero que también podría ocurrir en el curso normal al ejecutar un script. | |
| 16 | E_CORE_ERROR (integer) | Errores fatales que ocurren durante el arranque incial de PHP. Son como un E_ERROR, excepto que son generados por el núcleo de PHP. | desde PHP 4 |
| 32 | E_CORE_WARNING (integer) | Advertencias (errores no fatales) que ocurren durante el arranque inicial de PHP. Son como un E_WARNING, excepto que son generados por el núcleo de PHP. | desde PHP 4 |
| 64 | E_COMPILE_ERROR (integer) | Errores fatales en tiempo de compilación. Son como un E_ERROR, excepto que son generados por Motor de Script Zend. | desde PHP 4 |
| 128 | E_COMPILE_WARNING (integer) | Advertencias en tiempo de compilación (errores no fatales). Son como un E_WARNING, excepto que son generados por Motor de Script Zend. | desde PHP 4 |
| 256 | E_USER_ERROR (integer) | Mensaje de error generado por el usuario. Es como un E_ERROR, excepto que es generado por código de PHP mediante el uso de la función de PHP trigger_error(). | desde PHP 4 |
| 512 | E_USER_WARNING (integer) | Mensaje de advertencia generado por el usuario. Es como un E_WARNING, excepto que es generado por código de PHP mediante el uso de la función de PHP trigger_error(). | desde PHP 4 |
| 1024 | E_USER_NOTICE (integer) | Mensaje de aviso generado por el usuario. Es como un E_NOTICE, excepto que es generado por código de PHP mediante el uso de la función de PHP trigger_error(). | desde PHP 4 |
| 2048 | E_STRICT (integer) | Habilítelo para que PHP sugiera cambios en su código, lo que asegurará la mejor interoperabilidad y compatibilidad con versiones posteriores de PHP de su código. | desde PHP 5 |
| 4096 | E_RECOVERABLE_ERROR (integer) | Error fatal capturable. Indica que ocurrió un error probablemente peligroso, pero no dejó al Motor en un estado inestable. Si no se captura el error mediante un gestor definido por el usuario (vea también set_error_handler()), la aplicación se abortará como si fuera un E_ERROR. | desde PHP 5.2.0 |
| 8192 | E_DEPRECATED (integer) | Avisos en tiempo de ejecución. Habilítelo para recibir avisos sobre código que no funcionará en futuras versiones. | desde PHP 5.3.0 |
| 16384 | E_USER_DEPRECATED (integer) | Mensajes de advertencia generados por el usuario. Son como un E_DEPRECATED, excepto que es generado por código de PHP mediante el uso de la función de PHP trigger_error(). | desde PHP 5.3.0 |
| 30719 | E_ALL (integer) | Todos los errores y advertencias soportados, excepto del nivel E_STRICT. | 30719 en PHP 5.3.x, 6143 en PHP 5.2.x, 2047 anteriormente |
Los valores de arriba (numéricos o simbólicos) se usan para construir una máscara de bits que especifica qué errores notificar. Se pueden usar los operadores a nivel de bit para combinar estos valores o para enmascarar ciertos tipos de errores. Observe que sólo serán interpretados '|', '~', '!', '^' y '&' dentro de php.ini.
Andy at Azurite (co uk)
16-Apr-2011 11:15
PhpMyCoder
15-Jul-2010 10:26
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
01-Oct-2009 10:52
-1 sets the error reporting to show all to include strict. Should only be used for development servers.
