2

是否可以检测到php产生错误的代码行?例如,当有通知警报时,它会返回:

Notice: Undefined index: XX in / home / YY.php on line 17.
4

2 回答 2

0

如果您需要在通知文本中添加行,您可以使用__LINE__too 或 also

$Line = debug_backtrace()[0]['line'];

如果你有 PHP 5.4 - 或者(如果你有旧的 PHP)

$Line = debug_backtrace();
$Line = $Line[0]['line'];

或者,如果您需要更多调试信息(当然,也可以在 PHP 5.4 中使用)

$Debug = debug_backtrace();
$Line = $Debug[0]['line'];

您也可以使用大于 0 的数字 - 但大多数情况下它是无用的。您还应该确保 debug_backtrace 给出的数组有多个项目(该数组也有键为 1 或更大的项目)。

于 2014-03-01T15:18:44.547 回答
0

您可以使用以下方式注册错误处理程序set_error_handler

set_error_handler(function($errno, $errstr, $errfile, $errline) {
    $lines = file($errfile);
    $line = $lines[$errline - 1];
    print "Line with error: $line";
});
于 2014-03-01T14:54:28.223 回答