Thanks for the pointer, Nikita. I think the updated example (using `error_reporting() & $errno`) fails to mimic exactly what `error_reporting() === 0` did, though.
Say your php.ini mutes E_WARNING, for example: error_reporting = E_ALL & ~E_WARNING Checking for `error_reporting() === 0` allowed to only ignore @-suppressed statements, but still throw an exception on E_WARNING, ignoring the error_reporting set in php.ini. OTOH, checking for `error_reporting() & $errno` still allows to ignore @-suppressed statements, but **also ignores E_WARNING configured in php.ini**, which is not always what userland code wants. I'm not sure how userland code can now replicate the old behaviour, i.e. specifically detect the @ operator? — Benjamin