2009-10-28 17 views
10
  • E_ALL es igual a 8191 (0001 1111 1111 1111)
  • E_STRICT es igual a 2048 (0000 1000 0000 0000)

Usando OR bit a bit para combinarlos:¿Qué sentido tiene E_ALL | E_STRICT si tiene el mismo valor que E_ALL?

1 1111 1111 1111 
    1000 0000 0000 

obtenemos la exacta mismo valor que el original E_ALL:

1 1111 1111 1111 

¿Qué sentido tiene hacer error_reporting(E_ALL | E_STRICT) si podemos simplemente hacer error_reporting(E_ALL) para obtener lo mismo?

+0

He notado que con 5.4 puedo hacer lo siguiente 1. Configure E_ALL en php.ini y luego E_ALL | E_STRICT 2. Marque phpinfo() y el valor para informar errores es el mismo. Esto me parece un error ... –

+0

use https://maximivanov.github.io/php-error-reporting-calculator/ para crear informes de errores de su elección – pkachhia

Respuesta

18

que desee:

error_reporting(E_ALL | E_STRICT); 

E_ALL no incluye E_STRICT (a menos que usted está usando PHP 5.4+). Tus valores son incorrectos De Predefined ConstantsE_ALL se define como:

Todos los errores y advertencias, como el apoyo, a excepción de nivel E_STRICT antes de PHP 5.4.

32767 en 5.4.x PHP, PHP 5.3.x 30719 en, 6143 en PHP 5.2.x, 2047 previamente

+0

Veo que esto significa que los valores constantes cambiarán como la versión cambia Los valores que encontré provienen de http://www.w3schools.com/PHP/func_error_reporting.asp Están muy desactualizados, ¿no? – bobo

+11

w3schools puede tener información muy desactualizada. SIEMPRE iría a php.net como primera referencia para cualquier cosa relacionada con PHP. – cletus

+3

En PHP 5.4, 'E_STRICT' está incluido en' E_ALL'. – kiamlaluno

3

1 | 1 = 1

La respuesta más simple posible es que actualmente no hay ninguna razón para combinar los dos con una operación bit a bit, pero si alguna vez deciden cambiar esas constantes en el futuro, entonces puede haber.

Editar: y parece que ha sacado los valores incorrectos para esas constantes, haciendo que toda la pregunta sea discutible.

+0

Sí, los copié de http://www.w3schools.com/PHP/func_error_reporting.asp – bobo

1

de php.net:

Pasando en el valor -1 mostrará cada error posible, incluso cuando se añaden nuevos niveles y constantes en las futuras versiones de PHP. La constante E_ALL también se comporta de esta manera a partir de PHP 5.4.

Cuestiones relacionadas