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

Reply via email to