2009-10-28 6 views
10
  • E_ALL gleich 8191 (0001 1111 1111 1111)
  • E_STRICT gleich 2048 (0000 1000 0000 0000)

Mit bitweise ODER sie kombinieren:Was ist der Sinn von E_ALL | E_STRICT wenn es den gleichen Wert wie E_ALL hat?

1 1111 1111 1111 
    1000 0000 0000 

Wir bekommen den genauen gleichen Wert wie das Original E_ALL:

1 1111 1111 1111 

Was ist der Sinn zu tun error_reporting(E_ALL | E_STRICT), wenn wir einfach error_reporting(E_ALL) tun können, um das gleiche zu bekommen?

+0

Mir ist aufgefallen, dass ich mit 5.4 folgendes machen kann: 1. Setze E_ALL in php.ini und dann E_ALL | E_STRICT 2. Überprüfen Sie phpinfo() und der Wert für die Fehlerberichterstattung ist identisch. Dies scheint ein Fehler zu mir .... –

+0

Verwendung https://maximivanov.github.io/php-error-reporting-calculator/ Fehlerberichterstattung Ihrer Wahl – pkachhia

Antwort

18

Sie wollen:

error_reporting(E_ALL | E_STRICT); 

E_ALL nicht enthalten E_STRICT (es sei denn, Sie PHP verwenden 5.4+). Ihre Werte sind falsch. Von Predefined ConstantsE_ALL ist definiert als:

Alle Fehler und Warnungen die unterstützt werden, außer der Ebene E_STRICT vor PHP 5.4.

32767 in PHP 5.4.x, 30719 in PHP 5.3.x, 6143 in PHP 5.2.x, 2047 zuvor

+0

I bedeutet dies, werden die konstanten Werte sehen schaffen ändern wenn sich die Version ändert. Die Werte, die ich gefunden habe, sind von http://www.w3schools.com/PHP/func_error_reporting.asp Sie sind sehr veraltet, oder? – bobo

+11

w3schools kann einige sehr veraltete Informationen haben. Ich würde IMMER auf php.net als erste Referenz für alles, was PHP betrifft, gehen. – cletus

+3

In PHP 5.4 ist 'E_STRICT' in' E_ALL' enthalten. – kiamlaluno

3

1 | 1 = 1

Die einfachste mögliche Antwort ist, dass es derzeit keinen Grund gibt, die beiden mit einer bitweisen oder Operation zu kombinieren, aber wenn sie jemals entscheiden, diese Konstanten in der Zukunft zu ändern, dann könnte es sein.

Edit: und Sie scheinen die falschen Werte für diese Konstanten gezogen haben, so dass die gesamte Frage strittig ist.

+0

Ja, ich habe sie von http://www.w3schools.com/PHP/func_error_reporting.asp kopiert – bobo

1

von php.net:

im Wert Passing -1 wird alle möglichen Fehler zeigen, auch wenn neue Ebene und Konstanten in Zukunft PHP-Versionen hinzugefügt werden. Die E_ALL-Konstante verhält sich auch wie in PHP 5.4.

Verwandte Themen