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

Utilizzando OR bit a bit di combinarli:Qual è il punto di E_ALL | E_STRICT se ha lo stesso valore di E_ALL?

1 1111 1111 1111 
    1000 0000 0000 

otteniamo il esatto stesso valore come l'originale E_ALL:

1 1111 1111 1111 

Che senso ha fare error_reporting(E_ALL | E_STRICT) se possiamo semplicemente fare error_reporting(E_ALL) per ottenere la stessa cosa?

+0

Ho notato che con 5.4 posso fare quanto segue 1. Impostare E_ALL in php.ini e poi E_ALL | E_STRICT 2. Controllare phpinfo() e il valore per la segnalazione degli errori è lo stesso. Questo mi sembra un bug .... –

+0

usa https://maximivanov.github.io/php-error-reporting-calculator/ per creare segnalazioni di errore a tua scelta – pkachhia

risposta

18

desiderato:

error_reporting(E_ALL | E_STRICT); 

E_ALL non include E_STRICT (a meno che non si sta utilizzando PHP 5.4+). I tuoi valori non sono corretti. Da Predefined ConstantsE_ALL è definito come:

Tutti gli errori e le avvertenze, come sostenuto, ad eccezione del livello E_STRICT prima di PHP 5.4.

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

+0

Vedo questo significa che i valori costanti cambieranno come cambia la versione. I valori che ho trovato provengono da http://www.w3schools.com/PHP/func_error_reporting.asp Sono molto obsoleti, giusto? – bobo

+11

w3schools può avere alcune informazioni molto obsolete. Vorrei SEMPRE andare su php.net come primo riferimento per qualsiasi cosa relativa al PHP. – cletus

+3

In PHP 5.4, 'E_STRICT' è incluso in' E_ALL'. – kiamlaluno

3

1 | 1 = 1

La risposta più semplice possibile è che attualmente non vi è alcun motivo per combinare i due con un bit per bit o un'operazione, ma se mai decidessero di modificare tali costanti in futuro, allora potrebbe esserci.

Modifica: e sembri aver tirato i valori sbagliati per quelle costanti, rendendo l'intera questione discutibile.

+0

Sì, li ho copiati da http://www.w3schools.com/PHP/func_error_reporting.asp – bobo

1

da php.net:

Passando il valore -1 mostrerà ogni possibile errore, anche quando i nuovi livelli e le costanti sono aggiunti nelle future versioni di PHP. La costante E_ALL si comporta anche in questo modo a partire da PHP 5.4.

Problemi correlati