Sven Rautenberg: error_reporting(E_STRICT) greift nicht

Beitrag lesen

Moin!

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.

Die Kommentare zu den definierten E_*-Konstanten sagen, dass ~0 die bessere Methode ist, alle Bits zu setzen, weil das Zweierkomplement nicht zwingend immer funktionieren muss.

Außerdem wird vermutet, dass das Setzen von undefinierten Bits in der Maske undefiniertes Verhalten zur Folge haben könnte.

- Sven Rautenberg