error_reporting would be more useful if it would actually throw an exception when the program fails (similar to how 'use strict' causes a Perl program to invoke the 'die' method when the programmer does something stupid). Having program structure problems hidden away in a web server log instead of smacking the programmer in the face during testing doesn't seem to contribute much towards code quality.