论坛和问答网站确实是一个很好的学习资源!感谢Kolink和StackOverflow.com。
根据Kolink的提示,我进行了一些研究,然后我创建了一种新方法来驯服 PHP 中的绝大多数运行时错误。
我还没有弄清楚到底发生了什么,但我发现了一种强大的方法,它不使用默认的 PHP 错误处理,而是在同一个地方收集所有运行时错误消息。
请注意,PHP 编译错误对我来说不是问题,因为任何语法检查器都可以解决它,包括 PHP.exe。
假设我有一个包含许多潜在运行时错误的 PHP 源代码。所以我将我的代码放在 HTML 标记内的以下行中,例如在我需要使用 PHP 代码的初始位置。
<script type="text/javascript">
var nerrors = 0; // PHP Errors count in Javascript
function PHPErrors() { // Javascript Function that wraps the PHP Code
<?php
// MyErrorHandler is my function that my custom error handler
// uses with error parameters in that given order.
function myErrorHandler($errno, $errstr, $errfile, $errline) {
echo "document.getElementById('PHPErro').innerHTML += " .
"\"$errno: $errstr ($errline)<br>\";\r\n";
echo "nerrors = nerrors + 1;\r\n";
return true;
}
// That's the line the set my custom new error-handling
// disabling the default error handling
$old_error_handler = set_error_handler("myErrorHandler");
// Below random PHP code full of errors
$b = $a; // PHP Error 1
$c = $a +1; // PHP Error 2
$d = $a + 1; // PHP Error 3
$e = $_SESSION['glove']; // PHP Error 4
?>
// No PHP runtime error deserves a nice messagen
if (nerrors===0) {
document.getElementById('PHPError').innerHTML =
"Well done! PHP without errors."; }
} // End Javascript Function
在这段代码之后,您可以自由地添加额外的 Javascript 和 PHP。
最后,我将这 2 行放在 HTML 正文部分中的某个位置。
<p id="PHPError"> </p>
<button onclick="PHPErrors()">Show me all PHP runtime errors</button>
当我浏览这个 PHP 页面时,我可以看到这个按钮。所以我按下它,我可以看到所有 PHP 运行时错误消息或令人愉快的“干得好……”消息。