Ancak E_ALL aynı E_STRICT | neden E_ALL sonucudur?

3 Cevap php

PHP hata raporlama, içinde

  • E_ALL 8191 (1111111111111) eşittir
  • E_STRICT 2048 (100000000000) eşittir

Bitsel kullanarak veya bunları birleştirmek için:

1111111111111
 100000000000

biz hala olsun:

1111111111111

Neden sonucudur E_ALL | E_STRICT ile aynı E_ALL?

E_STRICT ve E_ALL | Nasıl error_reporting() function E_ALL ayırt ediyor?

3 Cevap

İstediğiniz:

error_reporting(E_ALL | E_STRICT);

(Eğer PHP 5.4 + kullanmadığınız sürece) E_ALL E_STRICT içermez. Kişisel değerler yanlıştır. : Şu Predefined Constants E_ALL gibi tanımlanmıştır

All errors and warnings, as supported, except of level E_STRICT prior to PHP 5.4.

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

1 | 1 = 1

Mümkün basit cevap, bitsel veya operasyon ile iki birleştirmek için hiçbir neden halen var olduğunu, ama onlar hiç gelecekte bu sabitleri değiştirmeye karar verirseniz, o zaman olabilir.

Edit: ve tüm soru Moot yapma, bu sabitleri için yanlış değerler çekti gibi görünüyor.

php.net den:

Değer -1 geçen yeni seviyeleri ve PHP'nin gelecek sürümlerinde eklendiğinde bile, her türlü hata gösterecektir. E_ALL sabiti aynı zamanda PHP 5.4 olarak bu şekilde davranır.