The error suppression operator in PHP is a very dangerous tool indeed. Simply by putting an at symbol, @
, in front of a statement, you can suppress any errors that result from it, including fatal errors that stop the execution of a script.
Unfortunately, this cannot necessarily be deprecated yet in PHP; having spoken to those in the PHP internals group, it is the case that there is a whole lot of prerequisite work that would need to be done first as some PHP functions do not have companion error functions to yield the error in the execution of a PHP script. As a result of this, the only way to show a non-fatal error that does not necessarily stop the execution of a script is to catch the error that is thrown during the operation of that particular function
The PHP core unfortunately, contains a considerable amount of technical debt in and of itself. Unfortunately, one thing that a good PHP developer should be good at is spotting technical debt in the PHP core itself...