Suppose you write:
error_reporting(0);
function myErrorHandler ($errno, $errmsg, $filename, $linenum, $vars) {
echo 'Error';
}
set_error_handler("myErrorHandler");
require('file.php');
If file.php doesn't exist, shouldn't the error handling function be called? But it's not... Try.
If you write include('file.php'), the error handling function is called.
I tested this on two servers.