如何在PHP脚本中返回行号

时间:2013-03-28 14:17:24

标签: php debugging

PHP脚本是否可以返回调用某些命令的行号?我无法描述我想要的东西,所以也许是一个例子。

我有多次调用MySQL的PHP​​代码。第49行是:

$resultDevice = mysql_query("Some SQL;") or die ("MySQL-Error in settingsU line 49: " . mysql_error());

我手动编写的文字“第49行”。如果我更改代码,是否可以更新此号码“49”?它会让我的生活更容易调试。当然,我可以将其他一些特定于行的文本放入die,但在文本编辑器中更容易找到行。

3 个答案:

答案 0 :(得分:49)

您可以使用magic constant __LINE__进行此操作。

echo  __LINE__;

将显示该语句在文件中的行号。

答案 1 :(得分:4)

如果你想要一个你可以使用的跟踪(对于PHP 4> = 4.3.0:)

function error_report_function($error) 
{
$dbgt=debug_backtrace();
return "$error in {$dbgt[1][file]} on line {$dbgt[1][line]}";
}

您可以使用debug_backtrace或者总是通过该行(使用__LINE__

答案 2 :(得分:1)

您可以使用以下内容:

function throwSQLError($file, $line, $error) {
    return "MySQL-Error in " . $file . " on line " . $line . ": " . $error;
}
$result = mysql_query("Some SQL;") or die (throwSQLError(__FILE__, __DIR__, mysql_error()));

这为您提供了一个动态函数来引发可以多次使用的错误。

未经测试,仅在原始编辑器中编写。