Funktionen, die das “Error Reporting” beeinflussen können erscheinen mir irgendwie verdächtig. Viel zu oft entdeckt man ein @-Zeichen vor einer Funktion, mit dem – mir zumindest – signalisiert wird, daß der Autor des Codes keine Lust hatte, sich um den Fehlerfall zu kümmern. Um allen @-Benutzern das Leben noch leichter zu machen:
Benutze doch einfach error_reporting(0);! Es wird keine Fehlermeldungen und Warnungen mehr geben, die Dir mitteilen, wie Du Deinen Code doch noch funktionstüchtig bekommst.
Aber mal im Ernst: Die Einstellung des “Error Reporting” gehört nicht in die PHP-Sourcen, sondern in die Konfiguration des Webservers (vor allem, wenn Produktiv- und Testsystem auf dem selben Rechner angesiedelt sind). Je nach Bedürfnis/Möglichkeit entweder in die .htaccess oder in die Einstellung des Virtual Hosts. Für ein Produktivsystem können somit die Voreinstellungen der php.ini verwendet werden:
error_reporting = E_ALL ^ E_NOTICE
display_errors = Off
display_startup_errors = Off
Und für das Testsystem eine .htaccess-Datei mit folgenden zusätzlichen Zeilen:
php_flag display_errors on
php_flag display_startup_errors on
php_value error_reporting 2047
Ab PHP 5 gibt es – nebenbei bemerkt – noch E_STRICT (2048).
Have fun!