<?php
/**
* POC for issue with @ error suppression in LemonStand
*
* Error handle code and example taken from php documents on set_error_handler()
*
* @see http://www.php.net/manual/en/function.set-error-handler.php
*/
function myErrorHandler($errNo, $errStr, $errFile, $errLine)
{
if (!(error_reporting() & $errNo)) {
// This error code is not included in error_reporting
return;
}
switch ($errNo) {
case E_USER_ERROR:
echo "<b>My ERROR</b> [$errNo] $errStr<br />\n";
echo " Fatal error on line $errLine in file $errFile";
echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
echo "Aborting...<br />\n";
exit(1);
break;
case E_USER_WARNING:
echo "<b>My WARNING</b> [$errNo] $errStr<br />\n";
break;
case E_USER_NOTICE:
echo "<b>My NOTICE</b> [$errNo] $errStr<br />\n";
break;
default:
echo "Unknown error type: [$errNo] $errStr<br />\n";
break;
}
/* Don't execute PHP internal error handler */
return true;
}
set_error_handler("myErrorHandler");
@include('foo');
- Output for 4.3.0 - 4.3.11, 4.4.0 - 4.4.9, 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
preferences:
226.53 ms | 406 KiB | 460 Q