通常在开发周期中进行 PHP 编程和测试时,每次运行只会看到一个错误。
您可以使用 php.exe 或在线工具查看语法错误 pilliapp或 phpcodechecker .但是,您无法检测到运行时错误,例如 undefined variable 。
您可以使用 XDebug 进行跟踪,但它很无聊。
如何在浏览器中一次显示所有 PHP 运行时错误?
所以用户可以同时处理所有愚蠢的问题,以不引人注目的方式。 (不是逻辑错误)。
最佳答案
论坛和问答网站确实是很好的学习资源!
昨天我做了一个question在 stackoverflow .com 和讨论启发我创建了一种新方法来使用 PHP 和 Javascript 解决 PHP 中的绝大多数运行时错误。
假设我有一个包含许多潜在运行时错误的 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('PHPError').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。 最后,我将下面两行放在 HTML 正文中的某个位置。
<p id="PHPError"> </p>
<button onclick="PHPErrors()">Show me all PHP runtime errors</button>
所以当我浏览这个PHP页面时,我可以看到
最后我按下它,我可以看到所有 PHP 运行时错误消息
8: Undefined variable: a (26)
8: Undefined variable: d (27)
8: Undefined variable: c (28)
8: Undefined index: glove (29)
或愉快的
Well done! PHP without errors.
显然不需要任何按钮,可以将此代码包含在 javascript onload 函数中。
关于php - 如何使用 Javascript 在浏览器中显示所有 PHP 运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14358518/