dedlfix: error_reporting(E_STRICT) greift nicht

Beitrag lesen

Tach!

xampp/php/php.ini:
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
display_errors = On

display_errors ist also on, error_reporting ist egal, weil du es ja überschreibst.

Das müsste eigentlich eine Menge Beschwerden auslösen:

error_reporting(E_STRICT);

bla123;

Lediglich diese Zeile löst eine E_NOTICE-Meldung aus. Da du aber nur E_STRICT gewählt hast, siehst du sie nicht.

Irgendwelche Ideen?

Wenn du wirklich alle Meldungen sehen willst, nimm error_reporting(-1). Normalerweise reicht E_ALL, der Zusatz E_STRICT zeigt nur ein paar Hinweise zu veralteten Dingen mehr an, vorwiegend aus dem OOP-Bereich.

Die Werte der E_*-Konstanten (außer E_ALL) in Binärdarstellung angesehen zeigen jeweils ein gesetztes Bit. Diese Bits muss man kombinieren, wenn man die jeweiligen Kategorien angezeigt bekommen möchte. error_reporting schaut also im ihm übergebenen Wert die gesetzten Bits an und lässt dann dementsprechende Meldungen zu. E_ALL kombiniert alle Bits, mit Ausnahme von E_STRICT in den 5er PHP-Versionen kleiner 5.4. Beim Wert -1 sind sämntliche Bits gesetzt, auch solche, die für error_reporting keine Bedeutung haben. Man muss sich bei -1 aber keine Gedanken machen, welche PHP-Version man hat und welche Meldungen dessen E_ALL umfasst. Der Unterschied zu E_ALL ist aber effektiv nur das relativ unwichtige E_STRICT.

dedlfix.